pysx0503
作者pysx0503·2020-04-30 23:47
系统工程师·第十区。散人

sysprocedures

字数 2264阅读 710评论 0赞 0

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 的整数成本:成本 / 调用

  • 0 -(2^31-1)

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 条评论

Ctrl+Enter 发表

作者其他文章

相关资料

X社区推广