RESET_BUFFER v15
The RESET_BUFFER
procedure resets a pointer to the session’s local message buffer back to the beginning of the buffer. This causes later PACK_MESSAGE
calls to overwrite any data items that were in the message buffer before the RESET_BUFFER
call.
RESET_BUFFER
Examples
A message to John is written to the local message buffer. It is replaced by a message to Bob by calling RESET_BUFFER
. The message is sent on the pipe.
DECLARE v_status INTEGER; BEGIN DBMS_PIPE.PACK_MESSAGE('Hi, John'); DBMS_PIPE.PACK_MESSAGE('Can you attend a meeting at 3:00, today?'); DBMS_PIPE.PACK_MESSAGE('If not, is tomorrow at 8:30 ok with you?'); DBMS_PIPE.RESET_BUFFER; DBMS_PIPE.PACK_MESSAGE('Hi, Bob'); DBMS_PIPE.PACK_MESSAGE('Can you attend a meeting at 9:30, tomorrow?'); v_status := DBMS_PIPE.SEND_MESSAGE('pipe'); DBMS_OUTPUT.PUT_LINE('SEND_MESSAGE status: ' || v_status); END; SEND_MESSAGE status: 0
The message to Bob is in the received message:
DECLARE v_item VARCHAR2(80); v_status INTEGER; BEGIN v_status := DBMS_PIPE.RECEIVE_MESSAGE('pipe',1); DBMS_OUTPUT.PUT_LINE('RECEIVE_MESSAGE status: ' || v_status); DBMS_PIPE.UNPACK_MESSAGE(v_item); DBMS_OUTPUT.PUT_LINE('Item: ' || v_item); DBMS_PIPE.UNPACK_MESSAGE(v_item); DBMS_OUTPUT.PUT_LINE('Item: ' || v_item); END; RECEIVE_MESSAGE status: 0 Item: Hi, Bob Item: Can you attend a meeting at 9:30, tomorrow?
- On this page
- Examples