Oracle Cursor FROM String.
PROCEDURE

DECLARE
 t_DAT             VARCHAR2(10);
 t_SQL             VARCHAR2(1000);
 t_CUR             SYS_REFCURSOR;
BEGIN
 t_SQL  := '
 SELECT
  CASE
    WHEN level = 1
    THEN ''HI''
    WHEN level = 2
    THEN ''BYE''
  END TEST
 FROM dual
  CONNECT BY level <= 2';

 OPEN t_CUR FOR t_SQL;
 LOOP
  FETCH t_CUR INTO t_DAT;
    EXIT WHEN t_CUR%NOTFOUND;
  dbms_output.put_line(t_DAT);
 END LOOP;
 CLOSE t_CUR;
END;
    

Kopieren