---
title: "DBMS_OUTPUT 概述 - OceanBase 数据库 V4.4.0 | OceanBase 文档中心"
description: DBMS_OUTPUT 概述 DBMS_OUTPUT 系统包使用户能够从存储过程、包和触发器中发送消息。 该系统包通常用于调试，并显示 PL 调试信息。 使用 DBMS_OUTPUT 系统包的 PUT 和 PUT_LINE 存储过程可以将信息放在缓冲区，方便其他触发器、存储过程或包读取。在单独的 PL 子程序或匿名块…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.4.0

# DBMS_OUTPUT 概述

更新时间：2025-09-06 12:27:55

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.4.0/zh-CN/700.reference/600.pl-reference/300.pl-oracle/1400.pl-system-package-oracle/11100.dbms-output-oracle/100.dbms-output-overview-oracle.md)  

`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` 提交的文本。

语法如下：

```sql
TYPE CHARARR IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER;

```

### DBMSOUTPUT_LINESARRAY 对象类型

`DBMSOUTPUT_LINESARRAY` 对象类型是包外定义的类型，它与 `GET_LINES` 一同使用，可以获取通过 `PUT` 和 `PUT_LINE` 提交的文本。

语法如下：

```sql
TYPE DBMSOUTPUT_LINESARRAY IS
VARRAY(2147483647) OF VARCHAR2(32767);

```

## DBMS_OUTPUT 子程序概览

下表列出了 OceanBase 数据库当前版本所支持的 `DBMS_OUTPUT` 子程序以及简要描述。

| **子程序** | **描述** |
| --- | --- |
| [DISABLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003382584) | 禁用消息输出。 |
| [ENABLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003382585) | 开启消息输出。 |
| [GET_LINE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003382589) | 从缓冲区中检索一行数据。 |
| [GET_LINES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003382590) | 从缓冲区检索一组行数据。 |
| [NEW_LINE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003382588) | 终止用 `PUT` 创建的行。 |
| [PUT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003382587) | 将部分行数据放入缓冲区。 |
| [PUT_LINE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003382586) | 将单行数据放入缓冲区。 |

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
