写在前面
最近要做测试场景的报表,写了很多存储过程。为了管理方便,打算放在一个包里。在网上搜了一下,按照定义做,总有问题。
后面明白是自己没明白Package和Package Body的区别。要放在一个包里,需要先定义包(Package),再定义包的内容(Package Body)。
具体写法
定义包(Package)
包中需要声明你定义的方法函数。
CREATE OR REPLACE PACKAGE MY_PACKAGE IS
/* 存储过程声明 */
PROCEDURE MY_PROCEDURE(
DATE_FROM DATE,
DATE_TO DATE
);
END MY_PACKAGE;
定义包的内容(Package Body)
定义完包之后,定义包体,也就是包的内容。包中的内容跟包的定义一致。
存储过程的定义需要跟包中的定义一致。
CREATE OR REPLACE PACKAGE BODY MY_PACKAGE IS
/* 存储过程声明 */
PROCEDURE MY_PROCEDURE(
DATE_FROM DATE,
DATE_TO DATE
) IS
BEGIN
/* 存储过程内容 */
END MY_PROCEDURE;
END MY_PACKAGE;