Vyberte * ze stuinfo; --Implicitní kurzor začátek dbms_output.put_line('Before-query:'|| sql%rowcount); Aktualizace stuinfo set stusex = 'žena'; dbms_output.put_line('After query:'|| sql%rowcount); konec;
--explicitní kurzor --1. Běžné Deklarujte kurzor mycur1 je select * ze 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čátek otevřít mycur1; --Otevřený kurzor Loop --načíst mycur1 do v_id,v_name,v_sex,v_bir; --Posuňte kurzor dolů, abyste do proměnné vložili hodnotu čtení Natáhněte mycur1 do v_row; --Číst kurzor Odejít když mycur1%nenalezeno; --dbms_output.put_line('id:'|| v_id||', jméno: '|| v_name||', pohlaví: '|| v_sex||' Narozeniny: '|| v_bir); --Výstupní výsledek dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir); koncová smyčka; zavřít mycur1; --Vypni kurzor konec;
--2. Versifikátor s parametry Deklarujte Kurzor mycur1(v_sex stuinfo.stusex%type) je select * ze stuinfo, kde stusex = v_sex; --definujte kurzory v_row stuinfo%rowtype; začátek otevřít mycur1('&gender'); --Otevřený kurzor Loop Natáhněte mycur1 do v_row; --Číst kurzor Odejít když mycur1%nenalezeno; dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir); koncová smyčka; zavřít mycur1; --Vypni kurzor konec;
--3. Kruhový kurzor Deklarujte kurzor mycur1 je select * ze stuinfo; --definujte kurzory začátek Pro v_row v Mycur1 Loop dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir); koncová smyčka; konec;
--4. Aktualizovat data kurzorem Deklarujte Kurzor mycur1 je pro aktualizaci select * ze stuinfo; --definujte kurzory začátek Pro v_row v Mycur1 Loop pokud v_row.stuid = '003' pak Smazat ze stuinfo kde je aktuální Mycur1; jinak Aktualizace stuinfo nastavte stusex = 'muž', kde je aktuální mycur1; Konec pokud; koncová smyčka; konec;
Vyberte * ze stuinfo; Aktualizace stuinfo nastavte stusex = 'žena', kde stuid = '002';
--referenční kurzor --1. Slabý typ Deklarujte typové jméno je ref cursor; --definujte typ kurzoru (curname je název typu) mycur1 cur curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; začátek v_sex := '& gender'; pokud v_sex = 'muž', pak Otevřete mycur1 pro select * ze stuinfo, kde stusex = 'muž'; Loop Natáhněte mycur1 do v_row; --Číst kurzor Odejít když mycur1%nenalezeno; dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir); koncová smyčka; jinak Otevřete mycur1 pro výběr * ze subinfo; Loop Natáhněte mycur1 do v_row2; --Číst kurzor Odejít když mycur1%nenalezeno; koncová smyčka; Konec pokud; zavřít mycur1; --Vypni kurzor konec; Vyberte * ze subinformací;
--Silný typ Deklarujte Typ curname je ref kurzor return stuinfo%rowtype; mycur1 cur curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; začátek v_sex := '& gender'; pokud v_sex = 'muž', pak Otevřete mycur1 pro select * ze stuinfo, kde stusex = 'muž'; jinak Otevřete mycur1 pro select * ze stuinfo, kde stusex = 'žena'; Konec pokud;
Loop Natáhněte mycur1 do v_row; --Číst kurzor Odejít když mycur1%nenalezeno; dbms_output.put_line('id:'|| v_row.stuid||', jméno: '|| v_row.stuname||', rod: '|| v_row.stusex||' Narozeniny: '|| v_row.stubir); koncová smyčka; zavřít mycur1; --Vypni kurzor konec;
|