sys_package_subprogram(包中函数/过程)

这个表存储关于包中函数或过程以及自定义类型中方法的信息。该表和sys_proc表功能基本相同,除标识包相关字段外其余字段意义相同。

表107 SYS_PACKAGE_SUBPROGRAM 结构
列名 类型 描述
OID OID 函数(或过程)OID
PROARGTYPES OIDVECTOR 函数参数的数据类型的向量
PROARGINOUT INT2VECTOR 参数输入输出
PRONAME NAME 函数名字
PRONAMESPACE OID 包含该函数名字空间的 OID
PROOWNER INT 函数所有者(创建者)
PROISFUNC INT 0表示存储过程PROCEDURE,1表示函数FUNCTION
PROLANG OID 这个函数的实现语言或调用接口,10表示PLOSCAR过程化语言实现
PRORETTYPE OID 返回值的数据类型(如果函数不返回值则为2278)
PRONARGS SMALLINT 参数数目
PROISAGG BOOLEAN 函数是聚集函数(当前不可用)
PROSECDEF BOOLEAN 函数是安全定义函数(如一个"set setuid"函数)
PROISSTRICT BOOLEAN 如果任何调用参数是空,那么函数返回空。这时函数实际上连调用都不调用。不是"strict"的函数必须准备处理空输入
PRORETSET BOOLEAN 函数返回一个集合(也就是说,指定数据类型的多个数值)
PROVOLATILE "CHAR" provolatile告诉我们该函数的结果是否只倚赖于它的输入参数,或者还会被外接因素影响。对于"不可变的(immutable)"函数它是i,这样的函数对于相同的输入总是产生相同的结果。对于"稳定(stable)"的函数它是 s,(对于固定输入)其结果在一次扫描里不变。对于"易变(volatile)"函数它是 v,其结果可能在任何时候变化。(v 也用于那些有副作用的函数,因此调用它们无法得到优化)
PROPERTIES BIGINT 函数/过程属性
PROSRC TEXT 这个字段告诉函数句柄如何调用该函数。它实际上对于解释语言来说就是函数的源程序,或者一个链接符号,一个文件名,或者是任何其他的东西,具体取决于语言/调用习惯的实现
PROBIN BYTEA 关于如何调用该函数的附加信息。同样,其含义也是和语言相关的
PROACL ACLITEM[] 访问权限
OBJID OID 函数/过程所属包或类型的OID
OBJ_NAME NAME 函数/过程所属包或类型的名称
ISPUBLIC BOOLEAN 函数/过程是共有的
ISVALID BOOLEAN 函数/过程是有效的
PROCEDURE_NO INT 函数编号
OVERLOAD_NO INT 重载编号,非重载为0