Cursor in Cursor

DECLARE

CURSOR cur_log IS SELECT PK_VALUES, COLUMNS_HEADER, COLUMNS_OLD_VALUE,COLUMNS_NEW_VALUE FROM XXTEB_AUDIT_LOG WHERE PK_VALUES=202;

BEGIN

FOR cur_log_rec IN cur_log LOOP

DECLARE CURSOR cur_result IS SELECT h.COLUMNVAL as Header, nv.COLUMNVAL as NewValue, ov.COLUMNVAL as OldValue

FROM TABLE(CAST (XXTEB_STR2TBL (cur_log_rec.COLUMNS_HEADER,'|') AS XXTEB_TABLE)) h

JOIN TABLE(CAST (XXTEB_STR2TBL (cur_log_rec.COLUMNS_NEW_VALUE,'|') AS XXTEB_TABLE)) nv ON nv.ROWNO=h.ROWNO

JOIN TABLE(CAST (XXTEB_STR2TBL (cur_log_rec.COLUMNS_OLD_VALUE,'|') AS XXTEB_TABLE)) ov ON ov.ROWNO=nv.ROWNO

WHERE 1=1;

BEGIN

FOR cur_result_rec IN cur_result LOOP

dbms_output.put_line (cur_result_rec.Header||';'||cur_result_rec.OldValue||';'||cur_result_rec.NewValue);

END LOOP;



END;

END LOOP;

END;

Hiç yorum yok: