오라클패키지,프로시저, 함수실습,Oracle Package,Procedure,Function,refcursor,참조커서,오라클교육/오라클학원/SQL교육/SQL학원/자바교육/자바학원

Описание к видео 오라클패키지,프로시저, 함수실습,Oracle Package,Procedure,Function,refcursor,참조커서,오라클교육/오라클학원/SQL교육/SQL학원/자바교육/자바학원

오라클 패키지, 프로시저, 함수 실습, Oracle Package, Procedure, Function 실습영상 입니다.

패키지 명세가 아래와 같다. 패키지 바디를 구현하고 각각 호출하여 테스트 하세요. (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;
/


[패키지 호출 테스트]

set serveroutput on

exec emp_pkg2.print_ename(7369);
SMITH

PL/SQL 처리가 정상적으로 완료되었습니다.

exec emp_pkg2.print_mname(7369);
FORD

variable emps refcursor
exec :emps := emp_pkg2.get_emps(10);

PL/SQL 처리가 정상적으로 완료되었습니다.

print emps

EMPNO ENAME SAL
---------- ---------- ----------
7782 CLARK 2450
7839 KING 5000
7934 MILLER 1300

Комментарии

Информация по комментариям в разработке