sysprocedures
sysprocedures 系统目录表列出了数据库中注册的每个函数和过程的特征。
它对每个例程包含一行。
sysprocedures 中的每个函数具有唯一值 procid,称为例程标识符。在整
个系统目录中,函数由其例程标识符而不是其名称标识。
sysprocedures 表具有以下列。
GBase 8s V8.7 安全数据库 SQL 参考指南
南大通用数据技术股份有限公司 -59-
表 1 SYSPROCEDURES 表列描述
列 类型 解释
procname VARCHAR(128) 例程的名称
owner VARCHAR(32) 所有者的名称
procid SERIAL 例程的唯一标识代码
mode CHAR(1) 方式类型:
D 或 d = DBA
O 或 o = 所有者
P 或 p = 受保护
R 或 r = 受限制
T 或 t = 触发器
retsize INTEGER 返回值的已编译大小(以字节计)
symsize INTEGER 符号表的已编译大小(以字节计)
datasize INTEGER 常量数据的已编译大小(以字节计)
codesize INTEGER 例程代码的已编译大小(以字节计)
numargs INTEGER 例程的自变量数
isproc CHAR(1) 指定例程是过程还是函数:
t = 过程
f = 函数
specificname VARCHAR(128) 指定例程的名称
externalname VARCHAR(255) 外部例程的位置。此项在内容和格式上
都是特定于语言的。
paramstyle CHAR(1) 参数样式:I = GBase 8s
langid INTEGER 语言代码(在 s sysroutinelangs 表中)
GBase 8s V8.7 安全数据库 SQL 参考指南
南大通用数据技术股份有限公司 -60-
列 类型 解释
paramtypes RTNPARAMTYPES 描述例程参数的信息
variant BOOLEAN 例程是否是 VARIANT:
t = 是 VARIANT
f = 不是 VARIANT
client BOOLEAN 保留供将来使用
handlesnulls BOOLEAN NULL 处理指示符:
t = 处理 NULL
f = 不处理 NULL
percallcost INTEGER 每个调用的 CPU 量
执行 UDR 的整数成本:成本 / 调用
commutator VARCHAR(128) 换向函数的名称
negator VARCHAR(128) 否定函数的名称
selfunc VARCHAR(128) 用于估计 UDR 的选择性的函数的名
称
internal BOOLEAN 指定是否可以从 SQL 调用例程:
t = 例程是内部的,不能从 SQL 调
用
f = 例程是外部的,可以从 SQL 调
用
class CHAR(18) 执行例程应依据的 CPU 类
stack INTEGER 每个调用所需的堆栈大小(以字节计)
GBase 8s V8.7 安全数据库 SQL 参考指南
南大通用数据技术股份有限公司 -61-
列 类型 解释
parallelizable BOOLEAN UDR 的并行化指示符:
t = 可并行化
f = 不可并行化
costfunc VARCHAR(128) UDR 的成本函数的名称
selconst SMALLFLOAT UDR 的选择性常量
flags INTEGER 仅供内部使用
在 mode 列中,R 方式是 O 方式的特殊情况。如果例程是以不同于例程
创建者的指定所有者创建的,那么例程处于受限 (R) 方式。如果执行了涉及远
程数据库的例程语句,那么数据库服务器使用执行例程的用户的访问特权而不
是例程所有者的特权。在所有其他情况下,R 方式例程与 O 方式例程行为相
同。
数据库服务器可以创建受保护的例程供内部使用。sysprocedures 表在
mode 列中用字母 P 或 p 标识这些受保护的例程,其中 p 指示 SPL 例程。
受保护例程具有以下限制:
您 无 法 使 用 ALTER FUNCTION 、 ALTER PROCEDURE 或 ALTER
ROUTINE 语句修改受保护的例程。
您 无 法 使 用 DROP FUNCTION 、 DROP PROCEDURE 或 DROP
ROUTINE 语句注销受保护的例程。
您无法使用 dbschema 实用程序显示受保护的例程。
在较早的版本中,受保护的 SPL 例程用小写 p 指示。从 V9.0 开始,受
保护的 SPL 例程将被视为 DBA 例程,而不能是所有者例程。因此,D 和 O 表
示 DBA 例程和所有者例程,而 d 和 o 表示受保护的 DBA 例程和受保护的
所有者例程。
触发器方式指定用户定义的 SPL 例程,只能从触发操作的 FOR EACH
ROW 部分调用该例程。
GBase 8s V8.7 安全数据库 SQL 参考指南
南大通用数据技术股份有限公司 -62-
要点: 在发出 SET SESSION AUTHORIZATION 语句后,数据库服务器为
所有使用新标识时创建的所有者例程指定限制方式。
唯一索引定义于 procid 列。procname、isproc、numargs 和 owner 列
的组合索引允许重复值,specificname 和 owner 列的组合索引也允许重复值。
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论