WEB开发网
开发学院数据库Oracle Oracle概念:过程、函数、程序包 阅读

Oracle概念:过程、函数、程序包

 2009-06-09 13:15:41 来源:WEB开发网   
核心提示: 并没有为过程提供代码,只是定义了名称和参数,Oracle概念:过程、函数、程序包(8),这个时候如果试图使用这个包,会报错exec employee_pkg.print_ename(1234);主体:程序包是过程,单独的过程和函数必须具有唯一的名称,但是程序包中可以有条件的共享相同的名称,

并没有为过程提供代码,只是定义了名称和参数。

这个时候如果试图使用这个包,会报错

exec employee_pkg.print_ename(1234);

主体:

程序包是过程,函数的具体实现部分,实现规范中定义的接口。

CREATE OR REPLACE

PACKAGE BODY employee_pkg as

Procedure print_ename(p_empno number) is

L_ename emp.ename%type;

Begin

Select ename into l_ename from emp where empno=p_empno;

Dbms_output.put_line(l_ename);

Exception

When no_data_found then

Dbms_output.put_line(‘Invalid employee number’);

End print_ename;

Procedure print_sal(p_empno number) is

L_sal emp.sal%type;

Begin

Select sal into l_sal from emp where empno=p_empno;

Dbms_output.put_line(l_sal);

Exception

When NO_DATA_FOUND then

Dbms_output.put_line(‘Invalid employee number’);

End print_sal;

End employee_pkg;

/

执行:

set serveroutput on

exec employee_pkg.print_ename(1234);

exec employee_pkg.print_ename(7782);

exec employee_pkg.print_sal(7782);

过程和函数的重载:

在单独的程序包中定义的共享相同名称的两个或者多个过程和函数。单独的过程和函数必须具有唯一的名称,但是程序包中可以有条件的共享相同的名称。

条件:参数列表在数量、次序或者参数类型上有所区别,比如

procedure foo(p1 varchar2);

procedure foo(p1 number);

procedure foo(p1 varchar2, p2 number);

上一页  3 4 5 6 7 8 9 10  下一页

Tags:Oracle 概念 过程

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接