Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 12902|Odgovoriti: 1

[Vir] Orakelski običajni kazalec, implicitni kazalec in parametrizirani kazalec

[Kopiraj povezavo]
Objavljeno na 19. 03. 2015 10:53:06 | | |
Izberite * iz stuinfo;
--Implicitni kazalec
začetek
    dbms_output.put_line('Before-query:'|| sql%rowcount);
    posodobi stuinfo set stusex = 'ženska';
    dbms_output.put_line('After query:'|| sql%rowcount);
konec;

--eksplicitni kazalec
--1. Običajno
razglasi
    kazalec mycur1 je select * iz stuinfo; --definiraj kazalec
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
začetek
    Odpri mycur1; --Odpri kazalec
    Zanka
    --prenesi mycur1 v v_id,v_name,v_sex,v_bir; --Premaknite kazalec navzdol, da se vrednost branja vpiše v spremenljivko
    prenesi mycur1 v v_row; --Beri kazalec
    izstopi, ko mycur1%nfound;
    --dbms_output.put_line('id:'|| v_id||', ime: '|| v_name||', spol: '|| v_sex||' Rojstni dan: '|| v_bir); --Izhodni rezultat
    dbms_output.put_line('id:'|| v_row.stuid||', ime: '|| v_row.stuname||', spol: '|| v_row.stusex||' Rojstni dan: '|| v_row.stubir);
    končna zanka;
    zapri mycur1; --Izklopi kazalec
konec;

--2. Versifikator s parametri
razglasi
    kazalec mycur1(v_sex stuinfo.stusex%type) je select * iz stuinfo, kjer stusex = v_sex; --definiraj kazalec
    v_row stuinfo%rowtype;
začetek
    odpri mycur1('&spol'); --Odpri kazalec
    Zanka
    prenesi mycur1 v v_row; --Beri kazalec
    izstopi, ko mycur1%nfound;
    dbms_output.put_line('id:'|| v_row.stuid||', ime: '|| v_row.stuname||', spol: '|| v_row.stusex||' Rojstni dan: '|| v_row.stubir);
    končna zanka;
    zapri mycur1; --Izklopi kazalec
konec;

--3. Krožni kazalec
razglasi
    kazalec mycur1 je select * iz stuinfo; --definiraj kazalec
začetek
    za v_row v mycur1
    Zanka
        dbms_output.put_line('id:'|| v_row.stuid||', ime: '|| v_row.stuname||', spol: '|| v_row.stusex||' Rojstni dan: '|| v_row.stubir);
    končna zanka;
konec;

--4. Posodobi podatke s kazalcem
razglasi
    Kazalec Mycur1 je Select * iz stuinfo za posodobitev; --definiraj kazalec
začetek
    za v_row v mycur1
    Zanka
        če je v_row.stuid = '003' potem
           Delete from stuinfo, kjer je trenutno Mycur1;
        else
           posodobi stuinfo set stusex = 'moški', kjer je trenutno mycur1;
        konec, če;
    končna zanka;
konec;

Izberite * iz stuinfo;
posodobitev stuinfo nastavi stusex = 'ženska', kjer stuid = '002';

--referenčni kazalec
--1. Šibek tip
razglasi
    tipsko ime je ref cursor; --definiraj tip kazalca (curname je ime tipa)
    mycur1 curname; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
začetek
    v_sex := '& spol';
    če je v_sex = 'moški', potem
       Odpri mycur1 za select * iz stuinfo, kjer je stusex = 'moški';
        Zanka
        prenesi mycur1 v v_row; --Beri kazalec
        izstopi, ko mycur1%nfound;
        dbms_output.put_line('id:'|| v_row.stuid||', ime: '|| v_row.stuname||', spol: '|| v_row.stusex||' Rojstni dan: '|| v_row.stubir);
        končna zanka;
    else
       Odpri mycur1 za izbiro * iz subinfo;
       Zanka
        Prenesi mycur1 v v_row2; --Beri kazalec
        izstopi, ko mycur1%nfound;
        končna zanka;
    konec, če;
    zapri mycur1; --Izklopi kazalec
konec;
Izberite * iz podinformacij;

--Močan tip
razglasi
    Tip curname je ref kazalec vrni stuinfo%rowtype;
    mycur1 curname;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
začetek
    v_sex := '& spol';
    če je v_sex = 'moški', potem
       Odpri mycur1 za select * iz stuinfo, kjer je stusex = 'moški';
    else
       odpri mycur1 za select * iz stuinfo, kjer stusex = 'ženska';
    konec, če;

    Zanka
        prenesi mycur1 v v_row; --Beri kazalec
        izstopi, ko mycur1%nfound;
        dbms_output.put_line('id:'|| v_row.stuid||', ime: '|| v_row.stuname||', spol: '|| v_row.stusex||' Rojstni dan: '|| v_row.stubir);
    končna zanka;
    zapri mycur1; --Izklopi kazalec
konec;







Prejšnji:"Bogastvo in šahovska igra" – razkriva notranjo zgodbo o ljubezni, delovnem mestu in sprejemnem izpitu za podiplomski študij
Naslednji:php5.2.17 mora ob namestitvi spremeniti vrednost cgi.force_redirect 1 na 0
Objavljeno na 19. 03. 2015 11:21:08 |
Odloži na stran lesson6.rar (920 Bytes, Število prenosov: 0)
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com