SYSPROCBODY

sysprocbody 系统目录表描述数据库中每个过程或函数的已编译版本。因为 sysprocbody 表存储例程的文本,所以每个例程可以有多行。sysprocbody 表具有以下列。
表 1. SYSPROCBODY 表列描述
类型 解释
procid INTEGER 例程的唯一标识代码
datakey CHAR(1) data 列中的信息的类型:
  • A = 例程更改 SQL(在更新统计信息后不会更改该值)
  • D = 例程用户文档文本
  • E = 创建时间信息
  • L = 文字值(即,文字数字或带引号字符串)
  • P = 解释器指令代码 (p-code)
  • R = 例程返回值类型列表
  • S = 例程符号表
  • T = 例程文本创建 SQL
seqno INTEGER 例程内的行号
data CHAR(256) 例程的实际文本

A 标志表示过程修饰符已更改。ALTER ROUTINE 语句仅更新修饰符而不是例程主体。UPDATE STATISTICS 更新查询计划而不是例程修饰符,并且数据键的值不会更改成 A 以外的值。A 标志标记所有已更改修饰符的过程和函数,包括超负荷的过程和函数。T 标志用于例程创建文本。

data 列包含实际数据,这些数据可以使用下列格式之一:
  • 编码返回值列表
  • 编码符号表
  • 文字数据
  • 例程的 P-code
  • 例程的已编译代码
  • 例程及其文档的文本

prociddatakeyseqno 列只允许唯一值。