Hi,
I have googled a lot to find answer for this question...
Scenario: I have a stored procedure which dequeues messages to an array (dbms_aq.dequeue_array). This array is of type varchar2. I need to pass this array from C++ to stored procedure and get back the results from stored procedure in that array.
CREATE OR REPLACE PACKAGE Q_ARR AS
--
--
TYPE msg_arr IS VARRAY(100) OF VARCHAR2(32);
PROCEDURE DequeueMessageArray(p_msg_arr OUT msg_arr, p_arr_size IN OUT pls_integer);
--
END;
/
CREATE OR REPLACE PACKAGE BODY Q_ARR AS
l_queue_name VARCHAR2(20) := 'A_QUEUE';
PROCEDURE DequeueMessageArray(p_msg_arr OUT msg_arr, p_arr_size IN OUT pls_integer) IS
v_options DBMS_AQ.dequeue_options_t;
v_prop_arr DBMS_AQ.message_properties_array_t;
v_msgid_arr dbms_aq.msgid_array_t;
deq_count pls_integer;
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
IF (p_arr_size IS NULL) THEN
p_arr_size := 100;
END IF;