Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Zurückgeben eines Ref-Cursors von einer Oracle-Funktion

Ein paar Fehler, schau dir mein Arbeitsbeispiel an, habe gerade die Quelltabelle geändert:

CREATE OR REPLACE FUNCTION  TEST_CUR RETURN SYS_REFCURSOR
AS
   VAR_REF SYS_REFCURSOR;
BEGIN
    OPEN VAR_REF FOR
        SELECT *
        FROM DUAL;

    RETURN VAR_REF;
END;

Hier müssen Sie den Cursor nicht öffnen, er ist bereits geöffnet.

DECLARE
    L_VAR SYS_REFCURSOR;
    L_STATUS VARCHAR2(10);
BEGIN
    L_VAR:=TEST_CUR;
    LOOP
        FETCH L_VAR INTO L_STATUS;
        EXIT WHEN L_VAR%NOTFOUND;
        DBMS_OUTPUT.PUT_LINE( L_STATUS );
    END LOOP;
    CLOSE L_VAR;
END;

Ein wirklich interessanter Beitrag, der zeigt, wie man Orakel-Cursor testet:

5 verschiedene Möglichkeiten Testen Sie die Ergebnisse von Oracle Ref Cursor