Oracle中使用程序包学习实例
1:创建程序包规范,
?? 可以声明变量,类型,子程序等
??
create or replace package pack_me is
??? procedure emp_proc (num number);
??? function emp_func(empno number) return varchar2;
end pack_me;
?
在程序包规范中声明了存储过程emp_proc和函数emp_func,它们的实现在程序包主体中。
?
2:? 创建程序包主体
?? create or replace package body pack_me is
?
???? procedure emp_proc(num number) is
???????? e_mail? varchar(50);
????? begin
??????????select t.email into e_email from employees t where t.id=num;
????????? dbms.output.put_line(email);
????? end emp_proc;
?
????? function?emp_func(empno number) return varchar2 is
?????????? emp_name varchar2(10);
????? begin
????????? select t.name into emp_name from employees t where t.id=empno;
????????? return emp_name;
????? end emp_func;
?
end pack_me;
?
3:测试程序包
?
declare
?? name varchar2(50);
?? no number;
begin
?? no := 3;
?? pack_me.emp_proc(no);? --输出编号为3的员工的email信息
?? name := pack_me.emp_func(no);? --获取编号为3的员工的姓名
?? dbms_output.put_line(name);? --输出姓名
end;
?
?
?
?