Vyberte * zo stuinfo; --Implicitný kurzor začať. dbms_output.put_line('Before-query:'|| sql%rowcount); Aktualizácia stuinfo nastavuje Stusex = 'žena'; dbms_output.put_line('After query:'|| sql%rowcount); koniec;
--explicitný kurzor --1. Bežné vyhlásiť kurzor mycur1 je select * z stuinfo; --definujte kurzory --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čať. Otvor mycur1; --Otvoriť kurzor slučka --načítaj mycur1 do v_id,v_name,v_sex,v_bir; --Posuňte kurzor nadol, aby ste do premennej vložili čítanú hodnotu Načítaj mycur1 do v_row; --Čítaj kurzor odíď, keď mycur1%nenájdená; --dbms_output.put_line('id:'|| v_id||', meno: '|| v_name||', rod: '|| v_sex||' Narodeniny: '|| v_bir); --Výstupný výsledok dbms_output.put_line('id:'|| v_row.stuid||', meno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narodeniny: '|| v_row.stubir); koncová slučka; Zatvoriť mycur1; --Vypni kurzor koniec;
--2. Versifikátor s parametrami vyhlásiť kurzor mycur1(v_sex stuinfo.stusex%type) je select * zo stuinfo, kde stusex = v_sex; --definujte kurzory v_row stuinfo%rowtype; začať. otvoriť mycur1('&gender'); --Otvoriť kurzor slučka Načítaj mycur1 do v_row; --Čítaj kurzor odíď, keď mycur1%nenájdená; dbms_output.put_line('id:'|| v_row.stuid||', meno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narodeniny: '|| v_row.stubir); koncová slučka; Zatvoriť mycur1; --Vypni kurzor koniec;
--3. Kruhový kurzor vyhlásiť kurzor mycur1 je select * z stuinfo; --definujte kurzory začať. pre v_row v mycur1 slučka dbms_output.put_line('id:'|| v_row.stuid||', meno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narodeniny: '|| v_row.stubir); koncová slučka; koniec;
--4. Aktualizujte údaje kurzorom vyhlásiť Kurzor mycur1 je select * zo stuinfo pre aktualizáciu; --definujte kurzory začať. pre v_row v mycur1 slučka ak v_row.stuid = '003' potom Delete from stuinfo where current of mycur1; else Aktualizácia stuinfo set stusex = 'muž', kde je aktuálny mycur1; koniec ak; koncová slučka; koniec;
Vyberte * zo stuinfo; aktualizácia stuinfo nastav stusex = 'žena', kde stuid = '002';
--referenčný kurzor --1. Slabý typ vyhlásiť typové meno je ref cursor; --definuj typ kurzora (curname je názov typu) mycur1 cur curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; začať. v_sex := '& rod'; ak v_sex = 'muž', potom Otvorte mycur1 pre select * zo stuinfo, kde stusex = 'muž'; slučka Načítaj mycur1 do v_row; --Čítaj kurzor odíď, keď mycur1%nenájdená; dbms_output.put_line('id:'|| v_row.stuid||', meno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narodeniny: '|| v_row.stubir); koncová slučka; else Otvorte mycur1 pre výber * zo subinfo; slučka Načítaj mycur1 do v_row2; --Čítaj kurzor odíď, keď mycur1%nenájdená; koncová slučka; koniec ak; Zatvoriť mycur1; --Vypni kurzor koniec; Vyberte * zo subinfo;
--Silný typ vyhlásiť Typ curname je ref kurzor return stuinfo%rowtype; mycur1 cur curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; začať. v_sex := '& rod'; ak v_sex = 'muž', potom Otvorte mycur1 pre select * zo stuinfo, kde stusex = 'muž'; else Otvorte mycur1 pre select * zo stuinfo, kde stusex = 'žena'; koniec ak;
slučka Načítaj mycur1 do v_row; --Čítaj kurzor odíď, keď mycur1%nenájdená; dbms_output.put_line('id:'|| v_row.stuid||', meno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narodeniny: '|| v_row.stubir); koncová slučka; Zatvoriť mycur1; --Vypni kurzor koniec;
|