NEXT_ITEM_TYPE v17
The NEXT_ITEM_TYPE
function returns an integer code identifying the data type of the next data item in a message that was retrieved into the session’s local message buffer. As each item is moved off of the local message buffer with the UNPACK_MESSAGE
procedure, the NEXT_ITEM_TYPE
function returns the data type code for the next available item. A code of 0
is returned when no more items are left in the message.
<typecode> INTEGER NEXT_ITEM_TYPE
Parameters
typecode
Code identifying the data type of the next data item is shown in the following table.
Type code | Data type |
---|---|
0 | No more data items |
9 | NUMBER |
11 | VARCHAR2 |
13 | DATE |
23 | RAW |
!!! Note The type codes listed in the table aren't compatible with Oracle databases. Oracle assigns a different numbering sequence to the data types.
Examples
This example shows a pipe packed with a NUMBER
item, a VARCHAR2
item, a DATE
item, and a RAW
item. A second anonymous block then uses the NEXT_ITEM_TYPE
function to display the type code of each item.
DECLARE v_number NUMBER := 123; v_varchar VARCHAR2(20) := 'Character data'; v_date DATE := SYSDATE; v_raw RAW(4) := '21222324'; v_status INTEGER; BEGIN DBMS_PIPE.PACK_MESSAGE(v_number); DBMS_PIPE.PACK_MESSAGE(v_varchar); DBMS_PIPE.PACK_MESSAGE(v_date); DBMS_PIPE.PACK_MESSAGE(v_raw); v_status := DBMS_PIPE.SEND_MESSAGE('datatypes'); DBMS_OUTPUT.PUT_LINE('SEND_MESSAGE status: ' || v_status); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('SQLERRM: ' || SQLERRM); DBMS_OUTPUT.PUT_LINE('SQLCODE: ' || SQLCODE); END; SEND_MESSAGE status: 0 DECLARE v_number NUMBER; v_varchar VARCHAR2(20); v_date DATE; v_timestamp TIMESTAMP; v_raw RAW(4); v_status INTEGER; BEGIN v_status := DBMS_PIPE.RECEIVE_MESSAGE('datatypes'); DBMS_OUTPUT.PUT_LINE('RECEIVE_MESSAGE status: ' || v_status); DBMS_OUTPUT.PUT_LINE('----------------------------------'); v_status := DBMS_PIPE.NEXT_ITEM_TYPE; DBMS_OUTPUT.PUT_LINE('NEXT_ITEM_TYPE: ' || v_status); DBMS_PIPE.UNPACK_MESSAGE(v_number); DBMS_OUTPUT.PUT_LINE('NUMBER Item : ' || v_number); DBMS_OUTPUT.PUT_LINE('----------------------------------'); v_status := DBMS_PIPE.NEXT_ITEM_TYPE; DBMS_OUTPUT.PUT_LINE('NEXT_ITEM_TYPE: ' || v_status); DBMS_PIPE.UNPACK_MESSAGE(v_varchar); DBMS_OUTPUT.PUT_LINE('VARCHAR2 Item : ' || v_varchar); DBMS_OUTPUT.PUT_LINE('----------------------------------'); v_status := DBMS_PIPE.NEXT_ITEM_TYPE; DBMS_OUTPUT.PUT_LINE('NEXT_ITEM_TYPE: ' || v_status); DBMS_PIPE.UNPACK_MESSAGE(v_date); DBMS_OUTPUT.PUT_LINE('DATE Item : ' || v_date); DBMS_OUTPUT.PUT_LINE('----------------------------------'); v_status := DBMS_PIPE.NEXT_ITEM_TYPE; DBMS_OUTPUT.PUT_LINE('NEXT_ITEM_TYPE: ' || v_status); DBMS_PIPE.UNPACK_MESSAGE(v_raw); DBMS_OUTPUT.PUT_LINE('RAW Item : ' || v_raw); DBMS_OUTPUT.PUT_LINE('----------------------------------'); v_status := DBMS_PIPE.NEXT_ITEM_TYPE; DBMS_OUTPUT.PUT_LINE('NEXT_ITEM_TYPE: ' || v_status); DBMS_OUTPUT.PUT_LINE('---------------------------------'); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE('SQLERRM: ' || SQLERRM); DBMS_OUTPUT.PUT_LINE('SQLCODE: ' || SQLCODE); END; RECEIVE_MESSAGE status: 0 ---------------------------------- NEXT_ITEM_TYPE: 9 NUMBER Item : 123 ---------------------------------- NEXT_ITEM_TYPE: 11 VARCHAR2 Item : Character data ---------------------------------- NEXT_ITEM_TYPE: 13 DATE Item : 02-OCT-07 11:11:43 ---------------------------------- NEXT_ITEM_TYPE: 23 RAW Item : 21222324 ---------------------------------- NEXT_ITEM_TYPE: 0
- On this page
- Parameters
- Examples