Dit artikel is een spiegelartikel van machinevertaling, klik hier om naar het oorspronkelijke artikel te gaan.

Bekijken: 12902|Antwoord: 1

[Bron] Oracle-normale cursors, impliciete cursors en geparametriseerde cursors

[Link kopiëren]
Geplaatst op 19-03-2015 10:53:06 | | |
Selecteer * uit StuInfo;
--Impliciete cursor
begin
    dbms_output.put_line('Before-query:'|| sql%rowcount);
    Bijwerken Stuinfo Set Stusex = 'vrouwelijk';
    dbms_output.put_line('After query:'|| sql%rowcount);
einde;

--expliciete cursor
--1. Gemeen
Verklaar
    Cursor MyCur1 is select * uit Stuinfo; --definieer cursors
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
begin
    open mycur1; --Open cursor
    lus
    --haal mycur1 in v_id, v_name, v_sex, v_bir; --Beweeg de cursor naar beneden om de leeswaarde in de variabele te zetten
    Haal MyCur1 in v_row; --Leescursor
    Vertrek wanneer mycur1%notfound;
    --dbms_output.put_line('id:'|| v_id||', naam: '|| v_name||', geslacht: '|| v_sex||' Verjaardag: '|| v_bir); --Uitvoerresultaat
    dbms_output.put_line('id:'|| v_row.stuid||', naam: '|| v_row.stuname||', geslacht: '|| v_row.stusex||' Verjaardag: '|| v_row.stubir);
    eindlus;
    sluit mycur1; --Zet de cursor uit
einde;

--2. Versifikijker met parameters
Verklaar
    Cursor MyCur1(v_sex stuinfo.stusex%type) is selecteer * uit stuinfo waarbij stusex = v_sex; --definieer cursors
    v_row stuinfo%rowtype;
begin
    open mycur1('&gender'); --Open cursor
    lus
    Haal MyCur1 in v_row; --Leescursor
    Vertrek wanneer mycur1%notfound;
    dbms_output.put_line('id:'|| v_row.stuid||', naam: '|| v_row.stuname||', geslacht: '|| v_row.stusex||' Verjaardag: '|| v_row.stubir);
    eindlus;
    sluit mycur1; --Zet de cursor uit
einde;

--3. Cirkelvormige cursor
Verklaar
    Cursor MyCur1 is select * uit Stuinfo; --definieer cursors
begin
    voor v_row in mycur1
    lus
        dbms_output.put_line('id:'|| v_row.stuid||', naam: '|| v_row.stuname||', geslacht: '|| v_row.stusex||' Verjaardag: '|| v_row.stubir);
    eindlus;
einde;

--4. Werk de data bij met de cursor
Verklaar
    Cursor MyCur1 is selecteer * uit StuINFO voor update; --definieer cursors
begin
    voor v_row in mycur1
    lus
        als v_row.stuid = '003' dan
           Verwijder uit StuInfo waar de stroom van MyCur1;
        anders
           update stuinfo stel stusex = 'mannelijk' waar de current van mycur1;
        einde als;
    eindlus;
einde;

Selecteer * uit StuInfo;
Bijwerking StuInfo stel Stusex = 'vrouwelijk' waarbij Stum = '002';

--referentiecursor
--1. Zwak type
Verklaar
    Type Curname is ref cursor; --definieer een cursortype (curname is de typenaam)
    mycur1 curname; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
begin
    v_sex := '& gender';
    als v_sex = 'mannelijk', dan
       Open MyCur1 voor selectie * van StuInfo waar Stusex = 'man';
        lus
        Haal MyCur1 in v_row; --Leescursor
        Vertrek wanneer mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', naam: '|| v_row.stuname||', geslacht: '|| v_row.stusex||' Verjaardag: '|| v_row.stubir);
        eindlus;
    anders
       Open MyCur1 voor Select * uit subinfo;
       lus
        Haal MyCur1 in v_row2; --Leescursor
        Vertrek wanneer mycur1%notfound;
        eindlus;
    einde als;
    sluit mycur1; --Zet de cursor uit
einde;
Selecteer * uit subinfo;

--Sterk type
Verklaar
    type curname is ref cursor return stuinfo%rowtype;
    mycur1 curname;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
begin
    v_sex := '& gender';
    als v_sex = 'mannelijk', dan
       Open MyCur1 voor selectie * van StuInfo waar Stusex = 'man';
    anders
       Open MyCur1 voor selectie * van Stuinfo waar Stusex = 'vrouwelijk';
    einde als;

    lus
        Haal MyCur1 in v_row; --Leescursor
        Vertrek wanneer mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', naam: '|| v_row.stuname||', geslacht: '|| v_row.stusex||' Verjaardag: '|| v_row.stubir);
    eindlus;
    sluit mycur1; --Zet de cursor uit
einde;







Vorig:"Rijkdom en Schaakspel" - het onthullen van het binnenverhaal van liefde, werkplek en toelatingsexamen voor postdoctorale studenten
Volgend:php5.2.17 moet de cgi.force_redirect waarde van 1 naar 0 veranderen bij installatie
Geplaatst op 19-03-2015 11:21:08 |
Apart gezet lesson6.rar (920 Bytes, Aantal downloads: 0)
Disclaimer:
Alle software, programmeermaterialen of artikelen die door Code Farmer Network worden gepubliceerd, zijn uitsluitend bedoeld voor leer- en onderzoeksdoeleinden; De bovenstaande inhoud mag niet worden gebruikt voor commerciële of illegale doeleinden, anders dragen gebruikers alle gevolgen. De informatie op deze site komt van het internet, en auteursrechtconflicten hebben niets met deze site te maken. Je moet bovenstaande inhoud volledig van je computer verwijderen binnen 24 uur na het downloaden. Als je het programma leuk vindt, steun dan de echte software, koop registratie en krijg betere echte diensten. Als er sprake is van een inbreuk, neem dan contact met ons op via e-mail.

Mail To:help@itsvse.com