Välj * från StuInfo; --Implicit markör Börja dbms_output.put_line('Before-query:'|| sql%rowcount); uppdatera stuinfo-uppsättningen stusex = 'kvinna'; dbms_output.put_line('Efter fråga:'|| sql%rowcount); slut;
--explicit markör --1. Gemensamt Förklara Cursor MyCur1 är Select * från StuInfo; --definiera markörer --v_id stuinfo.stuid%type; --v_name stuinfo.stuname%type; --v_sex stuinfo.stusex%type; --v_bir stuinfo.stubir%type; v_row stuinfo%rowtype; Börja öppna mycur1; --Öppen markör Loop --hämta mycur1 till v_id,v_name,v_sex,v_bir; --Flytta markören nedåt för att lägga in läsvärdet i variabeln hämta mycur1 till v_row; --Läsmarkör Avsluta när mycur1%intefound; --dbms_output.put_line('id:'|| v_id||', namn: '|| v_name||', kön: '|| v_sex||' Födelsedag: '|| v_bir); --Utgångsresultat dbms_output.put_line('id:'|| v_row.stuid||', namn: '|| v_row.stuname||', kön: '|| v_row.stusex||' Födelsedag: '|| v_row.stubir); slutslinga; stäng mycur1; --Stäng av markören slut;
--2. Versifierare med parametrar Förklara Cursor MyCur1(v_sex stuinfo.stusex%type) är välj * från stuinfo där stusex = v_sex; --definiera markörer v_row stuinfo%rowtype; Börja öppna mycur1('&gender'); --Öppen markör Loop hämta mycur1 till v_row; --Läsmarkör Avsluta när mycur1%intefound; dbms_output.put_line('id:'|| v_row.stuid||', namn: '|| v_row.stuname||', kön: '|| v_row.stusex||' Födelsedag: '|| v_row.stubir); slutslinga; stäng mycur1; --Stäng av markören slut;
--3. Cirkulär markör Förklara Cursor MyCur1 är Select * från StuInfo; --definiera markörer Börja för v_row i mycur1 Loop dbms_output.put_line('id:'|| v_row.stuid||', namn: '|| v_row.stuname||', kön: '|| v_row.stusex||' Födelsedag: '|| v_row.stubir); slutslinga; slut;
--4. Uppdatera datan med markören Förklara Cursor MyCur1 är välj * från StuInfo för uppdatering; --definiera markörer Börja för v_row i mycur1 Loop Om v_row.stuid = '003' så ta bort från StuInfo där ström av MyCur1; annars uppdatering stuinfo set stusex = 'man' där nuvarande av mycur1; slut om; slutslinga; slut;
Välj * från StuInfo; Uppdatera Stuinfo set Stusex = 'kvinna' där Stum = '002';
--referensmarkör --1. Svag typ Förklara Typ Curname är ref cursor; --definiera en markörtyp (curname är typnamnet) mycur1 curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; Börja v_sex := '& gender'; om v_sex = 'man' så öppna mycur1 för val * från stuinfo där stusex = 'man'; Loop hämta mycur1 till v_row; --Läsmarkör Avsluta när mycur1%intefound; dbms_output.put_line('id:'|| v_row.stuid||', namn: '|| v_row.stuname||', kön: '|| v_row.stusex||' Födelsedag: '|| v_row.stubir); slutslinga; annars öppna mycur1 för att välja * från subinfo; Loop hämta mycur1 till v_row2; --Läsmarkör Avsluta när mycur1%intefound; slutslinga; slut om; stäng mycur1; --Stäng av markören slut; Välj * från subinfo;
--Stark typ Förklara typ, curname är ref, cursor return, stuinfo%rowtype; mycur1 curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; Börja v_sex := '& gender'; om v_sex = 'man' så öppna mycur1 för val * från stuinfo där stusex = 'man'; annars öppna mycur1 för val * från stuinfo där stusex = 'kvinna'; slut om;
Loop hämta mycur1 till v_row; --Läsmarkör Avsluta när mycur1%intefound; dbms_output.put_line('id:'|| v_row.stuid||', namn: '|| v_row.stuname||', kön: '|| v_row.stusex||' Födelsedag: '|| v_row.stubir); slutslinga; stäng mycur1; --Stäng av markören slut;
|