Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 12902|Svar: 1

[Kilde] Oracle-normalcursorer, implicitte cursorer og parameteriserede cursors

[Kopier link]
Opslået på 19/03/2015 10.53.06 | | |
Vælg * fra StuInfo;
--Implicit markør
Begynd
    dbms_output.put_line('Before-query:'|| sql%rowcount);
    opdatering Stuinfo sæt Stusex = 'kvinde';
    dbms_output.put_line('After query:'|| sql%rowcount);
slut;

--eksplicit markør
--1. Fælles
Erklære
    Cursor MyCur1 er vælg * fra StuInfo; --definer markører
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
Begynd
    åbn mycur1; --Åben cursor
    Loop
    --hent mycur1 til v_id,v_name,v_sex,v_bir; --Flyt cursoren ned for at indsætte læseværdien i variablen
    hent mycur1 ind i v_row; --Læsemarkør
    forlad da mycur1%notfound;
    --dbms_output.put_line('id:'|| v_id||', navn: '|| v_name||', køn: '|| v_sex||' Fødselsdag: '|| v_bir); --Outputresultat
    dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir);
    slutløkke;
    luk mycur1; --Sluk for markøren
slut;

--2. Versifikator med parametre
Erklære
    Cursor MyCur1(v_sex stuinfo.stusex%type) er vælg * fra stuinfo, hvor stusex = v_sex; --definer markører
    v_row stuinfo%rowtype;
Begynd
    open mycur1('&gender'); --Åben cursor
    Loop
    hent mycur1 ind i v_row; --Læsemarkør
    forlad da mycur1%notfound;
    dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir);
    slutløkke;
    luk mycur1; --Sluk for markøren
slut;

--3. Cirkulær markør
Erklære
    Cursor MyCur1 er vælg * fra StuInfo; --definer markører
Begynd
    For v_row i MyCur1
    Loop
        dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir);
    slutløkke;
slut;

--4. Opdater dataene med markøren
Erklære
    Cursor MyCur1 er vælg * fra StuInfo til opdatering; --definer markører
Begynd
    For v_row i MyCur1
    Loop
        Hvis v_row.stuid = '003', så
           Slet fra StuInfo hvor der er strøm af MyCur1;
        ellers
           opdatering stuinfo sæt stusex = 'mand' hvor nuværende af mycur1;
        slut hvis;
    slutløkke;
slut;

Vælg * fra StuInfo;
opdatering stuinfo sæt stusex = 'kvinde' hvor stuid = '002';

--referencemarkør
--1. Svag type
Erklære
    Type Curname er ref cursor; --definer en cursortype (curname er typenavnet)
    mycur1 curname; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
Begynd
    v_sex := 'og køn';
    hvis v_sex = 'mand', så
       Åbn MyCur1 for select * fra Stuinfo, hvor Stusex = 'mand';
        Loop
        hent mycur1 ind i v_row; --Læsemarkør
        forlad da mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir);
        slutløkke;
    ellers
       åbn mycur1 for select * fra subinfo;
       Loop
        hent mycur1 til v_row2; --Læsemarkør
        forlad da mycur1%notfound;
        slutløkke;
    slut hvis;
    luk mycur1; --Sluk for markøren
slut;
Vælg * fra subinfo;

--Stærk type
Erklære
    type curname er ref cursor return stuinfo%rowtype;
    mycur1 curname;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
Begynd
    v_sex := 'og køn';
    hvis v_sex = 'mand', så
       Åbn MyCur1 for select * fra Stuinfo, hvor Stusex = 'mand';
    ellers
       Åbn MyCur1 for Select * fra Stuinfo, hvor Stusex = 'kvinde';
    slut hvis;

    Loop
        hent mycur1 ind i v_row; --Læsemarkør
        forlad da mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir);
    slutløkke;
    luk mycur1; --Sluk for markøren
slut;







Tidligere:"Rigdom og Skakspil" - afslører den indre historie om kærlighed, arbejdsplads og optagelsesprøve til kandidatuddannelser
Næste:php5.2.17 skal ændre cgi.force_redirect-værdien fra 1 til 0 ved installation
Opslået på 19/03/2015 11.21.08 |
Sat til side lesson6.rar (920 Bytes, Antal downloads: 0)
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com