DBMS_PIPE.UNPACK_MESSAGE and record type : DBMS_PIPE « System Packages « Oracle PL/SQL Tutorial






SQL>
SQL> CREATE OR REPLACE PACKAGE myPackage
  2  IS
  3     TYPE myRec IS RECORD (
  4        start_date DATE,
  5        trial_cost NUMBER,
  6        section_id VARCHAR2(100)
  7     );
  8     FUNCTION critical_info RETURN myRec;
  9  END;
 10  /

Package created.

SQL> CREATE OR REPLACE PACKAGE BODY myPackage
  2  IS
  3     thirty_days CONSTANT INTEGER := 30 * 24 * 60 * 60;
  4     FUNCTION critical_info RETURN myRec
  5     IS
  6        stat PLS_INTEGER;
  7        retval myRec;
  8     BEGIN
  9        stat := DBMS_PIPE.RECEIVE_MESSAGE ('impeachment', timeout => thirty_days);
 10        IF stat = 0
 11        THEN
 12           DBMS_PIPE.UNPACK_MESSAGE (retval.start_date);
 13           DBMS_PIPE.UNPACK_MESSAGE (retval.trial_cost);
 14           DBMS_PIPE.UNPACK_MESSAGE (retval.section_id);
 15        END IF;
 16        RETURN retval;
 17     END;
 18  END;
 19  /








31.18.DBMS_PIPE
31.18.1.DBMS_PIPE.CREATE_PIPE
31.18.2.DBMS_PIPE.RECEIVE_MESSAGE with timeout
31.18.3.DBMS_PIPE.SEND_MESSAGE with timeout
31.18.4.DBMS_PIPE.SEND_MESSAGE
31.18.5.DBMS_PIPE.PACK_MESSAGE
31.18.6.DBMS_PIPE.REMOVE_PIPE
31.18.7.DBMS_PIPE.RECEIVE_MESSAGE
31.18.8.Use dbms_pipe package
31.18.9.DBMS_PIPE.RESET_BUFFER
31.18.10.DBMS_PIPE.UNPACK_MESSAGE and record type
31.18.11.Use DBMS_PIPE to pack message and send message