系统包指的是 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 等。 |