PACKAGE
PACKAGE是一组相关存储过程、函数、变量、常量和游标等PL/SQL程序的组合,具有面向对象的特点,可以对PL/SQL程序设计元素进行封装。PACKAGE中的函数具有统一性,创建、删除、修改都统一进行。
PACKAGE包含包头(Package Specification)和Package Body两个部分,其中包头所包含的声明可以被外部函数、匿名块等访问,而在包体中包含的声明不能被外部函数、匿名块等访问,只能被包体内函数和存储过程等访问。
PACKAGE的创建请参见CREATE PACKAGE。
- 跨PACKAGE变量不支持作为FOR循环中控制变量使用。
- PACKAGE中定义类型不支持删除、修改等操作,也不支持定义表。
- 不支持以SCHEMA.PACKAGE.CURSOR的形式引用cursor变量。
- 带参数的CURSOR仅支持在当前PACKAGE内打开。
- 在分布式下,仅支持在ORA兼容性数据库中使用PACKAGE。
- 在分布式下,当SQL语句中含有package内的变量、package内的函数时,不支持下推。
- 不支持package变量作为函数或存储过程参数的默认值。
- 如果PACKAGE内的存储过程入参包含伪类型(如:anyelement),不支持调用时传入变长类型的参数。