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