DECLARE CURSOR CS IS SELECT JUNO ,ROWID RID FROM TABL; TYPE CS_TAB IS TABLE OF CS%ROWTYPE INDEX BY PLS_INTEGER; TYPE JUNO_TAB IS TABLE OF TABL.JUNO%TYPE INDEX BY PLS_INTEGER; TYPE RID_TAB IS TABLE OF ROWID INDEX BY PLS_INTEGER; CS_T CS_TAB; JUNO JUNO_TAB; RID RID_TAB; BEGIN OPEN CS; LOOP FETCH CS BULK COLLECT INTO CS_T LIMIT 10000; -- 한번에처리할 ROW수 EXIT WHEN CS_T.COUNT = 0; JUNO.DELETE; RID.DELETE; FOR I IN 1..CS_T.COUNT LOOP -- CS_T(I).JUNO를이용 암호화 처리 JUNO(I) := 암호결과; RID(I) := CS_T(I).RID; END LOOP; FORALL I IN 1..JUNO.COUNT UPDATE TABL SET JUNO = JUNO(I) WHERE ROWID = RID(I); COMMIT; END LOOP; CLOSE CS; END;