PURGE v15
The PURGE
procedure removes the unreceived messages from a specified implicit pipe.
PURGE(<pipename> VARCHAR2)
Use the REMOVE_PIPE
function to delete an explicit pipe.
Parameters
pipename
Name of the pipe.
Examples
Two messages are sent on a pipe:
DECLARE v_status INTEGER; BEGIN DBMS_PIPE.PACK_MESSAGE('Message #1'); v_status := DBMS_PIPE.SEND_MESSAGE('pipe'); DBMS_OUTPUT.PUT_LINE('SEND_MESSAGE status: ' || v_status); DBMS_PIPE.PACK_MESSAGE('Message #2'); v_status := DBMS_PIPE.SEND_MESSAGE('pipe'); DBMS_OUTPUT.PUT_LINE('SEND_MESSAGE status: ' || v_status); END; SEND_MESSAGE status: 0 SEND_MESSAGE status: 0
Receive the first message and unpack it:
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); END; RECEIVE_MESSAGE status: 0 Item: Message #1
Purge the pipe:
EXEC DBMS_PIPE.PURGE('pipe');
Try to retrieve the next message. The RECEIVE_MESSAGE
call returns status code 1
indicating it timed out because no message was available.
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); END; RECEIVE_MESSAGE status: 1
- On this page
- Parameters
- Examples