-
oracle PL/SQL_패키지DataBase/oracle 2020. 4. 20. 23:52
패키지 : 연관성있는 함수나 프로시저를 그룹으로 모아놓은 개념
패키지의 구성 : 선언부 + 몸체부 ( 선언부에서 선언되지않아도 몸체부에서 사용가능. but 권장x)
***구문형식
create [or replace] package 패키지명
is [as]
procedure 프로시저1이름,
procedure 프로시저2이름,
....
end;
create [or replace] package body 패키지명
is [as]
procedure 프로시저이름
subprogram bodis : 실제 작동하게 될 서브프로그램(프로시저or함수)
end;
< 패키지의 실행 >
패키지는 여러 환경하여 호출되어 실행 가능
패키지에대한 실행 권한을 가진 사용자만 실행시킬 수 있다
<패키지 삭제>
선언부와 몸채부 모두 삭제 or 몸체부만 삭제 가능
drop package 패키지명;
drop package body 패키지명;
패키지 선언부
12345create or replace package emp_proc isprocedure emp_sum;procedure emp_avg;end;/http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter패키지 body
1234567891011121314151617181920212223242526create or replace package body emp_proc asprocedure emp_sum iscursor emp_tot_sum isselect count(*), sum(nvl(salary,0)) from employees;tot_num number;tot_sum number;beginopen emp_tot_sum;fetch emp_tot_sum into tot_num, tot_sum;dbms_output.put_line('전체인원수 : ' || tot_num || ', 급여합계 : ' || tot_sum);close emp_tot_sum;end emp_sum;procedure emp_avg iscursor emp_tot_avg isselect count(*), avg(nvl(salary,0)) from employees;tot_num number;tot_avg number;beginopen emp_tot_avg;fetch emp_tot_avg into tot_num, tot_avg;dbms_output.put_line('전체인원수 : ' || tot_num || ', 평균급여 : ' || tot_avg);close emp_tot_avg;end emp_avg;end; --패키지 끝/http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter패키지 실행
1234--패키지 실행방법 : exec 패키지명.프로시저이름exec emp_proc.emp_avg;exec emp_proc.emp_sum;'DataBase > oracle' 카테고리의 다른 글
oracle 테이블스페이스 (0) 2020.04.26 oracle PL/SQL_트리거 (0) 2020.04.26 oracle PL/SQL_서브프로그램_함수 (0) 2020.04.20 oracle PL/SQL_서브프로그램_프로시저(procedure) (0) 2020.04.19 oracle PL/SQL_예외처리(Exception) (0) 2020.04.19