oracle学習ノート(21)パッケージ
1780 ワード
パッケージ
以前に呼び出された
パッケージ作成構文
1.パッケージの宣言
2.実装パッケージ
パッケージ例
以前に呼び出された
dbms_output.put_line('')
、dbms_output
はパッケージですパッケージ作成構文
1.パッケージの宣言
-- , ,
-- create or repalce
create or replace package dbms_my
is
record 。
procedure $procedure_name$ [( ...)];
function $function_name$ [( ...)]
......
end dbms_my;
2.実装パッケージ
create or replace package body dbms_my
is
procedure
is
......
end dbms_my;
パッケージ例
--
create or replace package dbms_my
is
--
TYPE type_my_rec is record(
empno number,
ename varchar2(10),
sal number
);
procedure sum_sal(deptno department.deptno%type,sum in out number);
function avg_sal(deptno department.deptno%type) return number;
end dbms_my;
--
create or replace package body dbms_my
is
procedure sum_sal(p_deptno department.deptno%type,sum in out number)
is
sum number;
begin
select sum(sal) into sum from employee where deptno=p_deptno;
end sum_sal;
function avg_sal(deptno department.deptno%type) return number
is
result number;
begin
select avg(sal) into result from employee where deptno=p_deptno;
return result;
end avg_sal;
end dbms_my;
--
declare
--
emp_rec dbms_my.type_my_rec;
v_deptno number default 7879;
sum_sal number;
avg_sal number;
x varchar2(100) := 'default value';
begin
emp_rec.empno := 7879;--
sum_sal := dbms_my.sum_sal(deptno);--
dbms_output.put_line(sum_sal);--
select dbms_my.avg_sal(7879) into avg_sal from dual;--
dbms_output.put_line(avg_sal);--
end;
/