레이블이 OraclePackage인 게시물을 표시합니다. 모든 게시물 표시
레이블이 OraclePackage인 게시물을 표시합니다. 모든 게시물 표시

2021년 12월 31일 금요일

[오라클동영상]오라클 패키지, 프로시저, 함수 실습, Oracle Package, Procedure, Function, refcursor, 참조커서

 [오라클동영상]오라클 패키지, 프로시저, 함수 실습, Oracle Package, Procedure, Function, refcursor, 참조커서






오라클 PL/SQL




패키지, 프로시저, 함수 실습


강의 : 이종철







패키지 명세가 아래와 같다. 패키지 바디를 구현하고 각각 호출하여 테스트 하세요.

(EXCEPTION 절을 이용하여 예외처리)

create or replace package emp_pkg2 as
-- 사번을 받아 사원명을 출력
procedure print_ename( p_empno number );


-- 사번을 받아 관리자 이름을 출력(mgr 칼럼이 관리자ID 임)
procedure print_mname( p_empno number );


-- 부서코드를 입력받아 해당 부서원들의 사번, 이름, 급여추출
function get_emps(p_deptno number) return sys_refcursor;


end emp_pkg2;
/



create or replace package body emp_pkg2 as
procedure print_ename(p_empno number)
is
v_ename emp.ename%type;
begin
select ename into v_ename
from emp
where empno = p_empno;
dbms_output.put_line(v_ename);
exception
when no_data_found then
dbms_output.put_line('no emp...');
when others then
dbms_output.put_line(SQLCODE || SQLERRM);
end;


procedure print_mname(p_empno number)
is
v_mname emp.ename%type;
begin
select e2.ename into v_mname
from emp e1, emp e2
where e1.mgr = e2.empno
and e1.empno = p_empno;
dbms_output.put_line(v_mname);
exception
when no_data_found then
dbms_output.put_line('no emp...');
when others then
dbms_output.put_line(SQLCODE || SQLERRM);
end;


function get_emps(p_deptno number) return sys_refcursor
is
empcursor sys_refcursor;
sqlstr varchar2(2000);
begin
sqlstr := 'select empno, ename, sal from emp where deptno = :1';
open empcursor for sqlstr using p_deptno;
return empcursor;
end;


end emp_pkg2;
/



[패키지 호출 테스트]

  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제



#오라클, #자바, #패키지, #프로시저, #오라클함수, #OraclePackage, #OracleProcedure, #ORacleFunction, #오라클교육, #오라클학원, #SQL교육, #SQL학원, #자바교육, #자바학원, 오라클, 자바, 패키지, 프로시저, 오라클함수, OraclePackage, OracleProcedure, ORacleFunction, 오라클교육, 오라클학원, SQL교육, SQL학원, 자바교육, 자바학원




2021년 12월 26일 일요일

오라클 패키지(Oracle PLSQL Package)란? 패키지 HelloWorld 실습, Create Package, Create Package Body, 자바학원, 오라클학원, SQL학원, 자바교육, 오라클교육, SQL교육

 

오라클 패키지(Oracle PLSQL Package)란? 패키지 HelloWorld 실습, Create Package, Create Package Body, 자바학원, 오라클학원, SQL학원, 자바교육, 오라클교육, SQL교육


http://ojc.asia/bbs/board.php?bo_table=LecSQLnPlSql&wr_id=716 


오라클 패키지(Oracle PLSQL Package)란? 패키지 HelloWorld 실습, Create Package, Create Package Body

오라클 패키지(Oracle PLSQL Package)란? 패키지 HelloWorld 실습, Create Package, Create Package Body오라클 PL/SQL오라클 패키지(Oracle Package)패키지 HelloWorld강의 : 이종철패키지란 연관성 있는, 논리적으로 연관된

ojc.asia


https://youtu.be/EZl9trYM1HM

https://www.youtube.com/watch?v=x_lwL9PuWTA&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=1 

https://www.youtube.com/watch?v=-2CzUYAmRvk&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=5 

https://www.youtube.com/watch?v=9cS-bMTbkLo&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=6 

오라클 PL/SQL

https://www.youtube.com/watch?v=7iTlIcwOX4A&list=PLxU-iZCqT52CfP98Y4gCDKIm52tKvgy36&index=7

오라클 패키지(Oracle Package)

패키지 HelloWorld



강의 : 이종철




패키지란 연관성 있는, 논리적으로 연관된 PL/SQL 타입(Types), 변수(Variable), 서브 프로그램(저장 프로시저, 저장 함수)의 그룹이며 오라클 스키마 오브젝트 입니다. 


패키지 명세(Specification)와 패키지 바디(Body)로 나누어지며 바디는 생략 가능 합니다.

패키지 명세는 CREATE PACKAGE 명령으로, 패키지 바디는 CREATE PACKAGE BODY 명령으로 작성 합니다.


패키지 명세에서 정의한 서브 프로그램 및 변수, 타입만 외부에서 접근, 호출 가능 합니다.

패키지 명세 : 타입, 전역변수, 커서, 예외, PL/SQL 프로그램에 대한 선언
패키지 바디 : 패키지 명세에서 정의한 모든 커서, 서브프로그램을 구현


패키지를 사용하는 장점은 다음과 같습니다.

연관된 타입, 서브 프로그램들을 PL/SQL 모듈안에 캡슐화. 시스템을 구축 운영하다보면 많은 함수, 프로시저등을 만들어 쓰는데 시간이 지나게되면 수가 많아져서 관리가 힘들어 집니다. 이런 함수, 프로시저들을 연관성 있는 것끼리 묵어 놓은 것이 패키지 입니다.

패키지 명세를 통한 커서, 예외, 함수나 프로시저의 구조를 정의하고 이를 먼저 컴파일하는 것이 가능 합니다.

패키지명세는 외부에 공개되는데 이를 구현한 패키지 바디는 외부에서 볼 수 없으며 타입, 서브프로그램들을 PUBLIC, PRIVATE으로 선언하여 접근을 제어할 수 있습니다. 패키지 바디에서 PRIVATE으로 선언한 함수, 프로시저는 외부에서는 참조 불가능 하며 내부에서 기능을 구현하기 위해 참조 됩니다.

패키지 명세에서 정의한 커서 or 예외, PUBLIC 변수들은 세션동안 유효하므로 이것들을 활용한 새로운 기능의 추가가 용이 합니다.

패키지안의 프로시저, 함수등이 최초 호출될 때 전체 패키지가 메모리에 로드 되므로 이후 호출 부터는 DISK I/O는 없습니다. 성능상 장점.


<기본형식>

[패키지 명세]
CREATE [OR REPLACE] PACKAGE package_name IS
   [variable declaration]
   [cursor declaration]
   [exception declaration]
   [procedure declaration]
   [function declaration] 
END;
 
[패키지 바디]
CREATE [OR REPLACE] PACKAGE BODY package_name  IS 
   [variable declaration]
   [cursor implementation]
   [exception implementation]
   [procedure bodies]
   [function bodies] 
END;


패키지 HelloWorld 실습 

프로시저 하나만 가지는 HELLO라는 이름의  패키지를 생성해 봅시다.


먼저 패키지 명세를 작성하세요.


-- 패키지명세는 패키지를 구성할 요소를 정의 합니다.
CREATE OR REPLACE PACKAGE HELLO
IS
   -- HELLO 패키지는 P_TEST라는 프로시저 하나로 이루어져 있습니다.
   PROCEDURE P_TEST(P_NAME VARCHAR2);
END;


<실행결과>

Procedure P_PRINT_ENAME이(가) 컴파일되었습니다.


패키지 바디를 작성하세요.


-- 패키지 바디를 생성 합니다.
CREATE OR REPLACE PACKAGE BODY HELLO
IS
   -- 패키지 명세에서 정의한 P_TEST 프로시저를 작성합니다.
   PROCEDURE P_TEST(P_NAME VARCHAR2)
   IS
   BEGIN
      DBMS_OUTPUT.PUT_LINE('Hello~ ' || P_NAME);
   END;
END HELLO;


<실행결과>

Package Body HELLO이(가) 컴파일되었습니다.



패키지의 프로시저를 호출해 봅시다..


SET SERVEROUTPUT ON;

-- 패키지내의 프로시저를 호출할 때는 패키지.프로시저 형태로 호출 합니다.
EXEC HELLO.P_TEST('오라클자바커뮤니티');


<실행결과>

Hello~ 오라클자바커뮤니티


#오라클패키지, #OraclePackage, #패키지HelloWorld, #createpackage, #오라클교육, #PLSQL교육, #자바교육, #SQL교육,#오라클학원, #PLSQL학원, #자바학원, #SQL학원, 오라클패키지, OraclePackage, 패키지HelloWorld, createpackage, 오라클교육, PLSQL교육, 자바교육, SQL교육,오라클학원, PLSQL학원, 자바학원, SQL학원, 

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...