Can anyone help me how can I get the value of array inside an array in for loop ORACLE. This is a example IN PARAMETER Array. I want to get the value of array is the array [3] in "ID" and VALUE of ID "EMP01658".
Array ( [1] => DC0001 [2] => DC0002 [3] => Array ( [ID] => EMP01658 ) )
This is my PL SQL CODE;
--This is my Package global variables
CREATE OR REPLACE PACKAGE PKG_GLB_VARIABLES
IS
TYPE refcursor IS REF CURSOR;
TYPE val_Array IS TABLE OF VARCHAR2(3000) INDEX BY BINARY_INTEGER;
END;
--This is my Procedure
CREATE OR REPLACE PROCEDURE Proc_Array(
param_Array IN pkg_glb_variables.val_Array
)
IS
BEGIN
for i in 1 .. param_Array.count
loop
DBMS_OUTPUT.put_line('aRRay('||i||') :'||param_Array(i));
IF param_Array(i)='Array' THEN
DBMS_OUTPUT.put_line('UY MAY ISA PANG ARRAY!');
for i_2 in 1 .. param_Array(i).count
loop
DBMS_OUTPUT.put_line('aRRay('||i_2||') :'||param_Array(i_2));
end loop;
END IF;
end loop;
END;
Thank you. :)
A VARCHAR2 is not the same as an array (collection or PL/SQL table), and cannot be indexed as such. You need to use Oracle's String functions. Here is an example to print out each character of each varchar2 array element:
A test to call the procedure:
The resulting dbms_output: