Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 12902|Risposta: 1

[Fonte] Cursori normali Oracle, cursori impliciti e cursori parametrizzati

[Copiato link]
Pubblicato su 19/03/2015 10:53:06 | | |
seleziona * da stuinfo;
--Cursore implicito
inizio
    dbms_output.put_line('Before-query:'|| sql%rowcount);
    Aggiornamento Stuinfo Set Stusex = 'femmina';
    dbms_output.put_line('Dopo la query:'|| sql%rowcount);
fine;

--cursore esplicito
--1. Comune
dichiara
    il cursore mycur1 è select * da stuinfo; --definire cursori
    --v_id stuinfo.stuid%type;
    --v_name stuinfo.stuname%type;
    --v_sex stuinfo.stusex%type;
    --v_bir stuinfo.stubir%type;
    v_row stuinfo%rowtype;
inizio
    apri mycur1; --Cursore apri
    Loop
    --recupera mycur1 in v_id,v_name,v_sex,v_bir; --Sposta il cursore verso il basso per inserire il valore di lettura nella variabile
    Recupera MyCur1 in v_row; --Leggi il cursore
    uscire quando mycur1%notfound;
    --dbms_output.put_line('id:'|| v_id||', nome: '|| v_name||', genere: '|| v_sex||' Compleanno: '|| v_bir); --Risultato in uscita
    dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', genere: '|| v_row.stusex||' Compleanno: '|| v_row.stubir);
    anello finale;
    chiudi mycur1; --Spegni il cursore
fine;

--2. Versificatore con parametri
dichiara
    Il cursore mycur1(v_sex stuinfo.stusex%type) è selezionato * da stuinfo dove stusex = v_sex; --definire cursori
    v_row stuinfo%rowtype;
inizio
    apri mycur1('&gender'); --Cursore apri
    Loop
    Recupera MyCur1 in v_row; --Leggi il cursore
    uscire quando mycur1%notfound;
    dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', genere: '|| v_row.stusex||' Compleanno: '|| v_row.stubir);
    anello finale;
    chiudi mycur1; --Spegni il cursore
fine;

--3. Cursore circolare
dichiara
    il cursore mycur1 è select * da stuinfo; --definire cursori
inizio
    Per v_row in MyCur1
    Loop
        dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', genere: '|| v_row.stusex||' Compleanno: '|| v_row.stubir);
    anello finale;
fine;

--4. Aggiornare i dati con il cursore
dichiara
    cursore mycur1 è seleziona * da stuinfo per aggiornamento; --definire cursori
inizio
    Per v_row in MyCur1
    Loop
        se v_row.stuid = '003' allora
           Elimina da Stuinfo dove è corrente MyCur1;
        altrimenti
           Aggiorna il set Stuinfo Stusex = 'maschio' dove corrente di MyCur1;
        fine se;
    anello finale;
fine;

seleziona * da stuinfo;
Aggiorna il set Stuinfo Stusex = 'femmina' dove Stuid = '002';

--cursore di riferimento
--1. Tipo debole
dichiara
    il tipo curname è cursor di rifezione; --definire un tipo di cursore (curname è il nome del tipo)
    mycur1 curname; --
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
    v_row2 subinfo%rowtype;
inizio
    v_sex := '& genere';
    se v_sex = 'maschio' allora
       apri MyCur1 per selezionare * da Stuinfo dove Stusex = 'maschio';
        Loop
        Recupera MyCur1 in v_row; --Leggi il cursore
        uscire quando mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', genere: '|| v_row.stusex||' Compleanno: '|| v_row.stubir);
        anello finale;
    altrimenti
       apri MyCur1 per selezionare * da subinfo;
       Loop
        recupera mycur1 in v_row2; --Leggi il cursore
        uscire quando mycur1%notfound;
        anello finale;
    fine se;
    chiudi mycur1; --Spegni il cursore
fine;
seleziona * da sottoinfo;

--Tipo forte
dichiara
    Tipo curname is ref cursor return stuinfo%rowtype;
    mycur1 curname;
    v_sex stuinfo.stusex%type;
    v_row stuinfo%rowtype;
inizio
    v_sex := '& genere';
    se v_sex = 'maschio' allora
       apri MyCur1 per selezionare * da Stuinfo dove Stusex = 'maschio';
    altrimenti
       Apri MyCur1 per selezionare * da StuInfo dove Stusex = 'femmina';
    fine se;

    Loop
        Recupera MyCur1 in v_row; --Leggi il cursore
        uscire quando mycur1%notfound;
        dbms_output.put_line('id:'|| v_row.stuid||', nome: '|| v_row.stuname||', genere: '|| v_row.stusex||' Compleanno: '|| v_row.stubir);
    anello finale;
    chiudi mycur1; --Spegni il cursore
fine;







Precedente:"Wealth and Chess Game" - che rivela la storia interna dell'amore, del lavoro e dell'esame di ammissione post-laurea
Prossimo:php5.2.17 deve cambiare il valore cgi.force_redirect da 1 a 0 durante l'installazione
Pubblicato su 19/03/2015 11:21:08 |
Da parte lesson6.rar (920 Bytes, Numero di download: 0)
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com