日期:2014-05-16  浏览次数:20431 次

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;

?

?

?

?