首批通过分布式安全可靠测评,为关键业务系统打造
DBMS_OUTPUT 概述
更新时间:2025-09-06 12:27:55
DBMS_OUTPUT 系统包使用户能够从存储过程、包和触发器中发送消息。
该系统包通常用于调试,并显示 PL 调试信息。
使用 DBMS_OUTPUT 系统包的 PUT 和 PUT_LINE 存储过程可以将信息放在缓冲区,方便其他触发器、存储过程或包读取。在单独的 PL 子程序或匿名块中,可以通过调用 GET_LINE 或 GET_LINES 来显示缓冲信息。
功能适用性
该内容仅适用于 OceanBase 数据库企业版。OceanBase 数据库社区版仅提供 MySQL 模式。
DBMS_OUTPUT 使用说明
如果不调用
GET_LINE,缓冲消息将被忽略。通常避免应用程序代码调用
DISABLE或ENABLE存储过程,可能会影响外部工具控制显示输出。注意
直到子程序或者触发器执行完成,通过
DBMS_OUTPUT输出的信息才会开始发送。目前没有机制可以将DBMS_OUTPUT输出的信息实时发送给客户端。
DBMS_OUTPUT 数据结构
DBMS_OUTPUT 系统包定义了 CHARARR 表类型和 DBMSOUTPUT_LINESARRAY 对象类型,与 GET_LINES 存储过程一同使用。
CHARARR 表类型
CHARARR 表类型与 GET_LINES 一同使用,可以获取通过 PUT 和 PUT_LINE 提交的文本。
语法如下:
TYPE CHARARR IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER;
DBMSOUTPUT_LINESARRAY 对象类型
DBMSOUTPUT_LINESARRAY 对象类型是包外定义的类型,它与 GET_LINES 一同使用,可以获取通过 PUT 和 PUT_LINE 提交的文本。
语法如下:
TYPE DBMSOUTPUT_LINESARRAY IS
VARRAY(2147483647) OF VARCHAR2(32767);
DBMS_OUTPUT 子程序概览
下表列出了 OceanBase 数据库当前版本所支持的 DBMS_OUTPUT 子程序以及简要描述。