Try this, and next time please format your code:
Code:CREATE OR REPLACE PROCEDURE ConvertToKvp AS TYPE loc_array_type IS TABLE OF VARCHAR2 (40); dml_str1 VARCHAR2 (200); loc_array loc_array_type; my_rec user_tab_columns.column_name%TYPE; BEGIN -- bulk fetch emtsearchablecontact column names SELECT column_name BULK COLLECT INTO loc_array FROM user_tab_columns WHERE table_name = 'EMTSEARCHABLECONTACTS' AND column_name NOT IN ('ID'); FOR i IN loc_array.FIRST .. loc_array.LAST LOOP SELECT column_name INTO my_rec FROM user_tab_columns WHERE table_name = 'CONTACTTABLE' AND column_name = loc_array (i); dml_str1 := 'INSERT INTO CONTACTSKVP(contact,key,value) select id,''' || my_rec || ''',' || loc_array (i) || ' FROM CONTACTTABLE WHERE ' || loc_array (i) || ' IS NOT NULL'; EXECUTE IMMEDIATE dml_str1; COMMIT; END LOOP; END; /![]()




Reply With Quote