系统包

最近更新时间: 2026-03-13 09:03:00

系统包指的是 TDSQL PG 数据库提供的兼容Oracle功能的一系列内置PL/SQL 程序包,包含程序、过程、函数、类型和变量,用于执行各种数据库级别的任务,如数据访问、数据处理、安全性、性能监控和数据库管理等。
举例常见的 TDSQL PG 系统包如DBMS_OUTPUT,其用于在 PL/SQL 代码块或存储过程中向用户显示信息。
使用方法如下:

-- output 'Hello, TDSQL PG!' in client
BEGIN
  DBMS_OUTPUT.PUT_LINE('Hello, TDSQL PG!');
END;
/

下表列举TDSQL PG目前支持的兼容oracle系统包列表,具体每个包的使用方法见参考手册。其中,使用 DBMS_JOB 包需要确保已经安装 tbase_dbms_job 插件,使用列表中的其它包需要确保已经安装 tbase_oracle_package_function 插件。

序号 Oracle 数据库 TDSQL PG 数据库 说明
1 DBMS_APPLICATION_INFO 支持 该包允许应用程序为执行上下文设置特定的模块和客户端信息,方便后续的问题定位和性能跟踪。
2 DBMS_JOB 部分支持 使用该包来执行一些定时任务。
3 DBMS_OUTPUT 支持 使用该包来进行信息输出,方便调试和问题定位。
4 DBMS_ASSERT 支持 该包主要用来验证特定字符串是否是合乎语法语义规则,不同的字符串有不同的验证规则。
5 DBMS_ALERT 支持 该包用来订阅和发送消息,结合TRIGGER等使用,可以感知数据库发生的数据变化。
6 DBMS_PIPE 支持 使用该包来创建一个消息管道用来进行消息传递。
7 DBMS_RANDOM 支持 使用该包来生成一串符合正态分布的随机数,并能基于该随机数生成一些随机字符串。
8 DBMS_UTILITY 部分支持 该包提供了一些工具函数,如FORMAT STACK等。
9 DBMS_LOB 部分支持 该包提供了一些工具函数用来操作LOB数据类型。注意由于TDSQL PG和ORACLE底层实现的不同,某些函数可能未实现或行为和ORACLE不一致。
10 DBMS_LOCK 部分支持 该包提供了一些工具函数,可以用来向lock manager获取锁,帮助在PL中写一些需要锁支持的逻辑。注意目前只支持sleep函数。
11 DBMS_SESSION 部分支持 该包提供一些工具函数用来操纵SESSION内的部分数据。注意TDSQL PG目前只支持UNIQUE_SESSION_ID,RESET_PACKAGE,FREE_UNUSED_USER_MEMORY三个函数。
12 DBMS_STATS 部分支持 该包提供一些工具函数用来进行统计信息搜集。
13 DBMS_METADATA 部分支持 该包提供一些工具函数,用来获取系统内部的一些SCHEMA信息。
14 DBMS_ROWID 部分支持 该包提供了一些工具函数,来创建和解析rowid。由于TDSQL PG和oracle底层实现的不同,某些函数行为不一定相同。
15 UTL_FILE 部分支持 该包提供一些工具函数,用来读写操作系统的文件。
16 UTL_RAW 部分支持 该包提供一些工具函数,用来操作RAW数据类型。
17 XMLDOM 部分支持 该包提供一些 XML 文档处理函数,目前支持 getElementsByTagName,getLength,item,getChildNodes,getFirstChild,getNodeValue,getNodeName,freeDocument 等。
18 XMLPARSER 部分支持 该包提供一些 XML 解析函数,目前支持parseClob,getDocument,freeParser 等。