CREATE OR REPLACE PROCEDURE TEST(O_ERRMSG OUT VARCHAR2) IS CURSOR PF_CUR IS SELECT TABLE_NAME,COLUMN_NAME FROM AA; TYPE V_PF IS TABLE OF VARCHAR2(32767) INDEX BY BINARY_INTEGER; V_SQLC V_PFOLIO; E_KEY RAW(128) := UTL_RAW.CAST_TO_RAW('33669911'); TAB_NAME VARCHAR2(4000); COL_NAME VARCHAR2(4000); ENCRYPTED_VALUE RAW(2048); ENCRYPTED_STRING RAW(64); BEGIN DUMMY(O_ERRMSG); FOR T_CUR IN PF_CUR LOOP TAB_NAME := T_CUR.TABLE_NAME; COL_NAME := T__CUR.COLUMN_NAME; EXECUTE IMMEDIATE 'SELECT ' || COL_NAME ||' FROM '|| TAB_NAME ||' WHERE ROWNUM<10' BULK COLLECT INTO V_SQLC; DBMS_OUTPUT.PUT_LINE(V_SQLC.COUNT); FOR I IN 1..V_SQLC.COUNT LOOP DBMS_OUTPUT.PUT_LINE(V_SQLC.COUNT); ENCRYPTED_VALUE := DBMS_CRYPTO.ENCRYPT(SRC => UTL_RAW.CAST_TO_RAW (V_SQLC(I)), TYP => DBMS_CRYPTO.DES_CBC_PKCS5, KEY => E_KEY); DBMS_OUTPUT.PUT_LINE('ENCRYPTED : ' || RAWTOHEX(ENCRYPTED_VALUE)); ENCRYPTED_STRING := SUBSTR(RAWTOHEX(ENCRYPTED_VALUE),1,10); DBMS_OUTPUT.PUT_LINE('ENCRYPTED : ' || ENCRYPTED_STRING); EXECUTE IMMEDIATE 'UPDATE '||TAB_NAME || ' SET '||COL_NAME ||' = '|| ENCRYPTED_STRING ||' WHERE CURRENT OF PF_CUR'; -- PROBLEM GOES HERE….. INSERT INTO BB VALUES (TAB_NAME,COL_NAME,V_SQLC(I),'Y',SYSDATE,USER); -- FOR AUDIT PURPOSE COMMIT; END LOOP; END LOOP; EXCEPTION WHEN NO_DATA_FOUND THEN AOS_ERRMSG := SQLCODE ||' : ' ||SUBSTR(SQLERRM,1,200); PLOG.ERROR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE); PLOG.ERROR('RECORDS NOT AVAILABLE' || ' ' ||O_ERRMSG); RETURN; WHEN OTHERS THEN AOS_ERRMSG := SQLCODE ||' : ' ||SUBSTR(SQLERRM,1,200); PLOG.ERROR(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE); PLOG.ERROR('UNEXPECTED ERROR' || ' ' ||O_ERRMSG); RETURN;