Casting einen ref-cursor in eine Tabelle geben in pl-sql

Möchte ich warf einen refcursor in einer Tabelle geben Sie wie unten gezeigt. Die folgende syntax nicht kompilieren.Das Ziel ist es, die Ergebnisse einer refcursor in eine temporäre Tabelle und dann tun einige Arbeit, die auf die Tabelle.

    create table vtest1 (a number, b number); 
    create table temptable1(a number, b number); 
    declare 
    pOUT SYS_REFCURSOR;
    type vtest1Tab is table of vtest1%rowtype;
    begin
      open pOUT for 'select * from vtest1';
      insert into temptable1(n1,n2)  
      select * from TABLE( cast(pOUT as vtest1Tab));
      close pOUT;
    end;    

Dank.

Sind Sie sicher, dass Sie müssen verwenden Sie ein Ref-Cursor? Sind Sie sicher, dass Sie brauchen, um eine temporäre Tabelle? Beides sind Merkmale, die Häufig missbraucht Anfänger, wenn es einfachere Möglichkeiten, wie z.B. das füllen einer PL/SQL-Kollektion mit einer normalen Abfrage, oder auch dynamisch.

InformationsquelleAutor Satfactor | 2012-07-11

Schreibe einen Kommentar