Referenz cursor und Gespeicherte Prozeduren in Oracle

Ich geschrieben habe, eine einfache gespeicherte Prozedur in PL/SQL ausführen, das äquivalent von

   SELECT * FROM tablename

Hier wird das Verfahren liefert eine Referenz cursor

   create or replace
   procedure proc_name (outVal OUT sys_refcursor) as
   myCursor sys_refcursor;
   myRecords records%ROWTYPE;
   l_sql VARCHAR(2000);
   begin
        l_sql := 'SELECT * FROM RECORDS';
        open myCursor for l_sql;
        loop
            FETCH myCursor INTO myRecords;
            EXIT WHEN myCursor%NOTFOUND;
            "DBMS_OUTPUT.put_line('myRecords.name =' || myRecords.name);"
        end loop;
   close myCursor;
   end;

Wenn ich jetzt ausführen wollen, meine Vorgehensweise in der SQL-Eingabeaufforderung, ohne die Zeile in Anführungszeichen in meinem code gehe ich über das tun es auf diese Weise

   VARIABLE cr REFCURSOR
   EXEC proc_name(:cr)

Nun bekomme ich eine Aufforderung zu sagen

   PL/SQL procedure successfully completed

Wenn ich jetzt versuche den Befehl auszuführen

   print cr;

Bekomme ich eine Fehlermeldung

   ORA-24338: Statement handle not executed

Bitte helfen Sie mir mit diesem . Ich muss wissen, wie man drucken Sie die Tabelle mit nur diesem Referenz-cursor, der zurückgegeben durch meine gespeicherten Prozedur . Ich will nicht alles drucken innerhalb des Verfahrens selbst und damit um das entfernen der Zeile in Anführungszeichen aus dem Verfahren alle zusammen .

InformationsquelleAutor Saiesh | 2012-07-10

Schreibe einen Kommentar