Wie zu verwenden Datensatz loop einen ref-cursor?
Ich schreiben wollen, PL/SQL zum testen einer Funktion in einem Paket. Das Paket definiert einen cursor-Typ
TYPE ref_cursor IS REF CURSOR;
Möchte ich definieren, die einen Datensatz basierend auf diesem Typ.
Mein code ist:
DECLARE
cur PACKAGE_NAME.ref_cursor;
rec cur%ROWTYPE;
warum ist die Letzte Zeile nicht korrekt?
Können Sie nach der Deklaration des Cursors geben Sie in das Paket? Insbesondere ist das Paket deklarieren eine starke oder eine schwache cursor?
Hi Justin, das ist die Erklärung in dem Paket, das ich testen möchte. (TYP ref_cursor IS REF CURSOR;)
Hi Justin, das ist die Erklärung in dem Paket, das ich testen möchte. (TYP ref_cursor IS REF CURSOR;)
InformationsquelleAutor Alex Tang | 2012-02-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie nicht definieren, ein record-Typ, basierend auf eine schwach typisierte REF CURSOR. Da die cursor-Typ, definiert im Paket kann verwendet werden, um wieder Daten von einer beliebigen Abfrage mit beliebigen Spalten, die PL/SQL-compiler nicht feststellen kann, einen entsprechenden Datensatz geben Sie die Daten abzurufen.
Wenn Sie wissen, dass die tatsächlichen Daten von der Funktion zurückgegeben, könnten Sie erklären, ein Datensatz, geben Sie die Daten abzurufen. Wenn ich zum Beispiel deklarieren Sie eine Funktion zurückgibt, die eine schwach typisierte cursor-Typ, aber ich weiß, dass der cursor wirklich gibt einen cursor auf der Grundlage der
EMP
Tabelle, kann ich die Daten abzurufen, die in eineEMP%ROWTYPE
aufnehmen (beachten Sie, dassSYS_REFCURSOR
ist eine von system definierte schwach typisierte REF CURSOR-Typ)erklären l_rc sys_refcursor; l_emp emp%rowtype; begin was ist, wenn ich nicht weiß, Art der l_emp oder haben keine Berechtigung für Objekttyp
InformationsquelleAutor Justin Cave