PACK_MESSAGE 函数 - 将数据项放到本地消息缓冲区中

PACK_MESSAGE 函数将数据项放到会话的本地消息缓冲区中。

语法

阅读语法图跳过直观语法图DBMS_PIPE.PACK_MESSAGE (item)

过程参数

item
类型为 VARCHAR(4096)、DATE 或 DECFLOAT 的输入自变量,其中包含表达式。此表达式返回的值将添加至会话的本地消息缓冲区。
提示: 要将类型为 RAW 的数据项放到本地消息缓冲区中,请使用 PACK_MESSAGE_RAW 过程。

权限

对 DBMS_PIPE 模块的 EXECUTE 特权。

示例

使用 PACK_MESSAGE 函数将有关 Sujata 的消息放在本地消息缓冲区中,然后使用 SEND_MESSAGE 过程在管道上发送该消息。

SET SERVEROUTPUT ON@ 

CREATE PROCEDURE proc1()
BEGIN
  DECLARE    v_status    INTEGER;
  DECLARE    status	     INTEGER;
  SET status = DBMS_PIPE.PACK_MESSAGE('Hi, Sujata');
  SET status = DBMS_PIPE.PACK_MESSAGE('Can you attend a meeting at 3:00, today?');
  SET status = DBMS_PIPE.PACK_MESSAGE('If not, is tomorrow at 8:30 ok with you?');
  SET v_status = DBMS_PIPE.SEND_MESSAGE('pipe');
  CALL DBMS_OUTPUT.PUT_LINE('SEND_MESSAGE status: ' || v_status);
END@

CALL proc1@

此示例生成以下输出:

  SEND_MESSAGE status: 0

使用说明

在发出 SEND_MESSAGE 调用之前,必须至少调用一次 PACK_MESSAGE 函数或 PACK_MESSAGE_RAW 过程。