系统包指的是 TDSQL PG 数据库提供的兼容 Oracle 功能的一系列内置 PL/SQL 程序包,包含程序、过程、函数、类型和变量,用于执行各种数据库级别的任务,如数据访问、数据处理、安全性、性能监控和数据库管理等。
举例常见的 TDSQL PG 系统包如 DBMS_OUTPUT,其用于在 PL/SQL 代码块或存储过程中向用户显示信息。
使用方法如下:
---在支持的客户端工具中输出 "Hello, TDSQL PG!" 字符串。BEGINDBMS_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 等。 |