举例常见的 TDSQL PG 系统包如 DBMS_OUTPUT,其用于在 PL/SQL 代码块或存储过程中向用户显示信息。
使用方法如下:
—在支持的客户端工具中输出 "Hello, TDSQL PG!" 字符串。BEGIN DBMS_OUTPUT.PUT_LINE('Hello, TDSQL PG!');END;/
TDSQL PG 目前兼容的 oracle 系统包列表如下表所示。
| 序号 | Oracle 数据库 | TDSQL PG 数据库 | 说明 |
| 1 | DBMS_APPLICATION_INFO | 支持 | 为执行上下文设置特定的模名和信息,方便后续的问题定位和性能跟踪。 |
| 2 | DBMS_SQL | 部分支持 | 提供了一套类似 OCI 的接口,允许用户使用该包模拟 OCI 的方式来操作动态 SQL。 |
| 3 | DBMS_JOB | 部分支持 | 使用该包来执行一些定时任务。 |
| 4 | DBMS_OUTPUT | 支持 | 使用该包来进行信息输出,方便调试和问题定位。 |
| 5 | DBMS_ASSERT | 支持 | 该包主要用来验证特定字符串是否是合乎语法语义规则,不同的字函数有不同的验证规则。 |
| 6 | DBMS_ALERT | 支持 | 该包用来订阅和发送消息,结合 TRIGGER 等使用,可以感知数据库发生的数据变化。 |
| 7 | DBMS_PIPE | 支持 | 使用该包来创建一个消息管道用来进行消息传递。 |
| 8 | DBMS_RANDOM | 支持 | 使用该包来生成一串符合正态分布的随机数,并能基于该随机数生成一些随机字符串。 |
| 9 | DBMD_UTILITY | 部分支持 | 该包提供了一些工具函数,如 FORMAT STACK 等,具体需要见该包的成员函数。 |
| 10 | DBMS_LOB | 部分支持 | 该包提供了一些工具函数用来操作 LOB 数据类型。注意由于 TDSQL PG 和 ORACLE 底层实现的不同,某些函数可能未实现或行为和 ORACLE 不一致。 |
| 11 | DBMS_LOCK | 部分支持 | 该包提供了一些工具函数,可以用来向 lock manager 获取锁,帮忙在 PL 中写一些需要锁支持的逻辑. 注意目前只支持 sleep 函数。 |
| 12 | DBMS_SESSION | 部分支持 | 搞包提供工具函数用来操纵 SESSION 内的部分数据。注意 TDSQL PG 目前只支持UNIQUE_SESSION_ID,RESET_PACKAGE,FREE_UNUSED_USER_MEMORY 三个函数。 |
| 13 | DBMS_STATS | 部分支持 | 该包提供工具函数用来进行统计信息搜集。 |
| 14 | DBMS_METADATA | 部分支持 | 该包提供一些工具函数,用来获取系统内部的一些 SCHEMA 信息。 |
| 15 | DBMS_ROWID | 部分支持 | 该包提供了一些工具函数,来创建和解析 rowid。由于 TDSQL PG 和 oracle 底层实现的不同,某些函数行为不一定相同。 |
| 16 | UTL_FILE | 部分支持 | 改包提供一些工具函数,用来读写操作系统的文件。 |
| 17 | UTL_RAW | 部分支持 | 该包提供一些工具函数,用来操作 RAW 数据类型。 |
| 18 | XMLDOM | 部分支持 | 该包提供一些 XML DOCUMENT 处理函数,目前支持 getElementsByTagName,getLength,item,getChildNodes,getFirstChild,getNodeValue,getNodeName,FREEDOCUMENT 等。 |
| 19 | XMLPARSER | 部分支持 | 该包提供一些 XML 解析函数,目前支持 parseClob,getDocument,freeParser 等。 |