Vælg * fra StuInfo; --Implicit markør Begynd dbms_output.put_line('Before-query:'|| sql%rowcount); opdatering Stuinfo sæt Stusex = 'kvinde'; dbms_output.put_line('After query:'|| sql%rowcount); slut;
--eksplicit markør --1. Fælles Erklære Cursor MyCur1 er vælg * fra StuInfo; --definer 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; Begynd åbn mycur1; --Åben cursor Loop --hent mycur1 til v_id,v_name,v_sex,v_bir; --Flyt cursoren ned for at indsætte læseværdien i variablen hent mycur1 ind i v_row; --Læsemarkør forlad da mycur1%notfound; --dbms_output.put_line('id:'|| v_id||', navn: '|| v_name||', køn: '|| v_sex||' Fødselsdag: '|| v_bir); --Outputresultat dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir); slutløkke; luk mycur1; --Sluk for markøren slut;
--2. Versifikator med parametre Erklære Cursor MyCur1(v_sex stuinfo.stusex%type) er vælg * fra stuinfo, hvor stusex = v_sex; --definer markører v_row stuinfo%rowtype; Begynd open mycur1('&gender'); --Åben cursor Loop hent mycur1 ind i v_row; --Læsemarkør forlad da mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir); slutløkke; luk mycur1; --Sluk for markøren slut;
--3. Cirkulær markør Erklære Cursor MyCur1 er vælg * fra StuInfo; --definer markører Begynd For v_row i MyCur1 Loop dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir); slutløkke; slut;
--4. Opdater dataene med markøren Erklære Cursor MyCur1 er vælg * fra StuInfo til opdatering; --definer markører Begynd For v_row i MyCur1 Loop Hvis v_row.stuid = '003', så Slet fra StuInfo hvor der er strøm af MyCur1; ellers opdatering stuinfo sæt stusex = 'mand' hvor nuværende af mycur1; slut hvis; slutløkke; slut;
Vælg * fra StuInfo; opdatering stuinfo sæt stusex = 'kvinde' hvor stuid = '002';
--referencemarkør --1. Svag type Erklære Type Curname er ref cursor; --definer en cursortype (curname er typenavnet) mycur1 curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; Begynd v_sex := 'og køn'; hvis v_sex = 'mand', så Åbn MyCur1 for select * fra Stuinfo, hvor Stusex = 'mand'; Loop hent mycur1 ind i v_row; --Læsemarkør forlad da mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir); slutløkke; ellers åbn mycur1 for select * fra subinfo; Loop hent mycur1 til v_row2; --Læsemarkør forlad da mycur1%notfound; slutløkke; slut hvis; luk mycur1; --Sluk for markøren slut; Vælg * fra subinfo;
--Stærk type Erklære type curname er ref cursor return stuinfo%rowtype; mycur1 curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; Begynd v_sex := 'og køn'; hvis v_sex = 'mand', så Åbn MyCur1 for select * fra Stuinfo, hvor Stusex = 'mand'; ellers Åbn MyCur1 for Select * fra Stuinfo, hvor Stusex = 'kvinde'; slut hvis;
Loop hent mycur1 ind i v_row; --Læsemarkør forlad da mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', køn: '|| v_row.stusex||' Fødselsdag: '|| v_row.stubir); slutløkke; luk mycur1; --Sluk for markøren slut;
|