PLSQL入门与精通(第27章:包)

从这章开始,我们针对package(包)进行说明。从此进入高级篇。
我们的高级篇将对包、触发器、其他函数等进行解说。

首先是包:包是指吧一些东西总结在一起的意思。
PL/SQL的包可以包含过程和函数,甚至变量。

好处:包会装入存储器中,所以如果将相关的过程、函数放到包里,性能上会好些。

例子:
创建PAC1包,包里边包含PROC1的程序,吧一个P1的参数打印到SQL*Plus画面上。

<首先创建包体,或者叫包的申明>

SQL> CREATE PACKAGE PAC1
2 IS
3 PROCEDURE PROC1 ( P1 IN VARCHAR2);
4 END;
5 /

包已创建。

<接着创建包的主体>
SQL> CREATE PACKAGE BODY PAC1
2 IS
3 PROCEDURE PROC1 ( P1 IN VARCHAR2)
4 IS
5 BEGIN
6 DBMS_OUTPUT.PUT_LINE(P1);
7 END;
8 END;
9

包主体创建完成。

使SQL>SET SERVEROUT ON --SQL*Plus的画面输出有效
<调用包的过程>
SQL> EXEC PAC1.PROC1(‘HELLO, PL/SQL PACKAGE !’);

PL/SQL过程成功完成。

简单地解说如下:
包首先要创建包体样子(或者叫做包体申明),使用CREATE PACKAGE语句进行包体申明。
在包申明里边的第2行中,有PROC1程序的记述,请注意是空的,没有主体或者没有实现。
也就是说,只有“PROCEDURE PROC1(P1 IN VARCHAR2);”这一行。

包申明后,就需要创建包的主体。
使用CREATE PACKAGE BODY语句,创建包主体,需要定义过程和函数的完整的实现。
例如,包主体定义的第3行到第7行就是PROC1过程的完全定义。
也就是说,虽然在申明部过程定义是不完整的,但在主体上是完整的。

包主体完成后,可以调用包内的程序等。

请注意在调用PROC1过程时,将包名称PAC1加上:PAC1.PROC1。
这样调用包内的程序时,前边会加上包名。

这就是包的整体概念。

猜你喜欢

转载自blog.csdn.net/niusr_1980_01/article/details/114254175