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;
|