Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 12902|Antwort: 1

[Quelle] Oracle-Normalcursor, implizite Cursor und parametrisierte Cursor

[Link kopieren]
Veröffentlicht am 19.03.2015 10:53:06 | | |
Wählen Sie * aus Stuinfo;
--Impliziter Cursor
Beginnen
    dbms_output.put_line('Before-query:'|| sql%rowcount);
    Update Stuinfo Set Stusex = 'weiblich';
    dbms_output.put_line('After query:'|| sql%rowcount);
Ende;

--expliziter Cursor
--1. Gemeine
Erklären
    Cursor MyCur1 ist Select * von Stuinfo; --Cursor definieren
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
Beginnen
    mycur1 öffnen; --Offener Cursor
    Schleife
    --bring mycur1 in v_id,v_name,v_sex,v_bir; --Schiebe den Cursor nach unten, um den Lesewert in die Variable einzufügen
    MyCur1 in v_row holen; --Lesecursor
    Verlassen, wenn mycur1%notfound;
    --dbms_output.put_line('id:'|| v_id||', Name: '|| v_name||', Geschlecht: '|| v_sex||' Geburtstag: '|| v_bir); --Ausgabeergebnis
    dbms_output.put_line('id:'|| v_row.stuid||', Name: '|| v_row.stuname||', Geschlecht: '|| v_row.stusex||' Geburtstag: '|| v_row.stubir);
    Endschleife;
    mycur1 schließen; --Schalte den Cursor aus
Ende;

--2. Versifier mit Parametern
Erklären
    Cursor mycur1(v_sex stuinfo.stusex%type) wird * aus stuinfo auswählen, wobei stusex = v_sex; --Cursor definieren
    v_row stuinfo%rowtype;
Beginnen
    öffne mycur1('&gender'); --Offener Cursor
    Schleife
    MyCur1 in v_row holen; --Lesecursor
    Verlassen, wenn mycur1%notfound;
    dbms_output.put_line('id:'|| v_row.stuid||', Name: '|| v_row.stuname||', Geschlecht: '|| v_row.stusex||' Geburtstag: '|| v_row.stubir);
    Endschleife;
    mycur1 schließen; --Schalte den Cursor aus
Ende;

--3. Kreiscursor
Erklären
    Cursor MyCur1 ist Select * von Stuinfo; --Cursor definieren
Beginnen
    für v_row in mycur1
    Schleife
        dbms_output.put_line('id:'|| v_row.stuid||', Name: '|| v_row.stuname||', Geschlecht: '|| v_row.stusex||' Geburtstag: '|| v_row.stubir);
    Endschleife;
Ende;

--4. Aktualisieren Sie die Daten mit dem Cursor
Erklären
    Cursor MyCur1 wird von StuINFO für ein Update ausgewählt; --Cursor definieren
Beginnen
    für v_row in mycur1
    Schleife
        wenn v_row.stuid = '003', dann
           Löschen von StuInfo, wo aktuell von MyCur1;
        oder
           Aktualisierung stuInfo Satz Stusex = 'männlich', wo aktuell MyCur1 ist;
        Ende wenn;
    Endschleife;
Ende;

Wählen Sie * aus Stuinfo;
Aktualisieren Stuinfo: Stusex = 'weiblich', wobei stuid = '002';

--Referenzcursor
--1. Schwacher Typ
Erklären
    Typ Curname ist Ref Cursor; --definiere einen Cursortyp (curname ist der Typname)
    mycur1 curname; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
Beginnen
    v_sex := '& gender';
    wenn v_sex = 'männlich', dann
       Öffne MyCur1 zur Auswahl * bei Stuinfo, wo Stusex = 'männlich';
        Schleife
        MyCur1 in v_row holen; --Lesecursor
        Verlassen, wenn mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', Name: '|| v_row.stuname||', Geschlecht: '|| v_row.stusex||' Geburtstag: '|| v_row.stubir);
        Endschleife;
    oder
       MyCur1 für Auswahl * aus Subinfo öffnen;
       Schleife
        MyCur1 in v_row2 holen; --Lesecursor
        Verlassen, wenn mycur1%notfound;
        Endschleife;
    Ende wenn;
    mycur1 schließen; --Schalte den Cursor aus
Ende;
Wählen Sie * aus Unterinfo;

--Starker Typ
Erklären
    Typ: Curname ist ref Cursor return stuinfo%rowtype;
    mycur1 curname;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
Beginnen
    v_sex := '& gender';
    wenn v_sex = 'männlich', dann
       Öffne MyCur1 zur Auswahl * bei Stuinfo, wo Stusex = 'männlich';
    oder
       Öffne MyCur1 zur Auswahl * bei Stuinfo, wo Stusex = 'weiblich';
    Ende wenn;

    Schleife
        MyCur1 in v_row holen; --Lesecursor
        Verlassen, wenn mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', Name: '|| v_row.stuname||', Geschlecht: '|| v_row.stusex||' Geburtstag: '|| v_row.stubir);
    Endschleife;
    mycur1 schließen; --Schalte den Cursor aus
Ende;







Vorhergehend:"Reichtum und Schachspiel" – die Insidergeschichte von Liebe, Arbeitsplatz und der Aufnahmeprüfung zum Postgraduiertenstudium enthüllt
Nächster:php5.2.17 muss beim Installieren den cgi.force_redirect Wert von 1 auf 0 ändern
Veröffentlicht am 19.03.2015 11:21:08 |
Beiseite legen lesson6.rar (920 Bytes, Anzahl der Downloads: 0)
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com