v_sys_package_subprogram(包中函数/过程)¶
这个系统视图用于展示关于包中函数或过程以及自定义类型中方法的信息。该视图和sys_proc表功能基本相同,除标识包相关字段外其余字段意义相同。
| 列名 | 类型 | 描述 |
|---|---|---|
| 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 |