Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 12902|Răspunde: 1

[Sursă] Cursori normali Oracle, cursori impliciti și cursori parametrizați

[Copiază linkul]
Postat pe 19.03.2015 10:53:06 | | |
selectează * din stuinfo;
--Cursor implicit
Încep
    dbms_output.put_line('Înainte-interogare:'|| sql%rowcount);
    Actualizare setul StuInfo Stusex = 'feminin';
    dbms_output.put_line('După interogare:'|| sql%rowcount);
sfârșit;

--cursor explicit
--1. Comun
declară
    cursorul mycur1 este select * din stuinfo; --definesc cursorii
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
Încep
    deschide mycur1; --Deschide cursorul
    Buclă
    --preia mycur1 în v_id,v_name,v_sex,v_bir; --Mutați cursorul în jos pentru a introduce valoarea de citire în variabilă
    preia mycur1 în v_row; --Citește cursorul
    ieși când mycur1%notfound;
    --dbms_output.put_line('id:'|| v_id||', nume: '|| v_name||', gen: '|| v_sex||' Ziua de naștere: '|| v_bir); --Rezultat de ieșire
    dbms_output.put_line('id:'|| v_row.stuid||', nume: '|| v_row.stuname||', gen: '|| v_row.stusex||' Ziua de naștere: '|| v_row.stubir);
    buclă de capăt;
    închide mycur1; --Oprește cursorul
sfârșit;

--2. Versificator cu parametri
declară
    cursorul mycur1(v_sex stuinfo.stusex%type) este select * din stuinfo unde stusex = v_sex; --definesc cursorii
    v_row stuinfo%rowtype;
Încep
    deschide mycur1('&gen'); --Deschide cursorul
    Buclă
    preia mycur1 în v_row; --Citește cursorul
    ieși când mycur1%notfound;
    dbms_output.put_line('id:'|| v_row.stuid||', nume: '|| v_row.stuname||', gen: '|| v_row.stusex||' Ziua de naștere: '|| v_row.stubir);
    buclă de capăt;
    închide mycur1; --Oprește cursorul
sfârșit;

--3. Cursor circular
declară
    cursorul mycur1 este select * din stuinfo; --definesc cursorii
Încep
    pentru v_row în mycur1
    Buclă
        dbms_output.put_line('id:'|| v_row.stuid||', nume: '|| v_row.stuname||', gen: '|| v_row.stusex||' Ziua de naștere: '|| v_row.stubir);
    buclă de capăt;
sfârșit;

--4. Actualizează datele cu cursorul
declară
    cursor mycur1 este select * din stuinfo pentru actualizare; --definesc cursorii
Încep
    pentru v_row în mycur1
    Buclă
        dacă v_row.stuid = '003' atunci
           șterge de pe stuinfo unde este actuală mycur1;
        altfel
           Actualizează setul StuInfo Stusex = 'Masculin' unde este curent MyCur1;
        sfârșit dacă;
    buclă de capăt;
sfârșit;

selectează * din stuinfo;
actualizare setul stuinfo stusex = 'feminin' unde stuid = '002';

--cursor de referință
--1. Tip slab
declară
    Tipul Curname este cursorul de referință; --definiți un tip de cursor (curname-ul este numele tipului)
    mycur1 curname; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
Încep
    v_sex := '& gen';
    dacă v_sex = "masculin" atunci
       Deschide MyCur1 pentru Select * din StuInfo unde Stusex = 'Masculin';
        Buclă
        preia mycur1 în v_row; --Citește cursorul
        ieși când mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', nume: '|| v_row.stuname||', gen: '|| v_row.stusex||' Ziua de naștere: '|| v_row.stubir);
        buclă de capăt;
    altfel
       deschide mycur1 pentru selectare * din subinfo;
       Buclă
        preia mycur1 în v_row2; --Citește cursorul
        ieși când mycur1%notfound;
        buclă de capăt;
    sfârșit dacă;
    închide mycur1; --Oprește cursorul
sfârșit;
selectează * din subinfo;

--Tip puternic
declară
    tip curname is ref cursor return stuinfo%rowtype;
    mycur1 curname;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
Încep
    v_sex := '& gen';
    dacă v_sex = "masculin" atunci
       Deschide MyCur1 pentru Select * din StuInfo unde Stusex = 'Masculin';
    altfel
       Deschide MyCur1 pentru Select * din StuInfo unde Stusex = 'Feminin';
    sfârșit dacă;

    Buclă
        preia mycur1 în v_row; --Citește cursorul
        ieși când mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', nume: '|| v_row.stuname||', gen: '|| v_row.stusex||' Ziua de naștere: '|| v_row.stubir);
    buclă de capăt;
    închide mycur1; --Oprește cursorul
sfârșit;







Precedent:"Wealth and Chess Game" - dezvăluind povestea internă a iubirii, a locului de muncă și a examenului de admitere postuniversitar
Următor:php5.2.17 trebuie să schimbe valoarea cgi.force_redirect de la 1 la 0 la instalare
Postat pe 19.03.2015 11:21:08 |
Pune deoparte lesson6.rar (920 Bytes, Numărul de descărcări: 0)
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com