velg * fra stuinfo; --Implisitt markør Begynn dbms_output.put_line('Before-query:'|| sql%rowcount); Oppdatering Stuinfo sett Stusex = 'kvinnelig'; dbms_output.put_line('After query:'|| sql%rowcount); slutt;
--eksplisitt markør --1. Felles Erklær Cursor MyCur1 er velg * 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; Begynn åpne mycur1; --Åpen markør Loop --hent mycur1 til v_id, v_name, v_sex, v_bir; --Flytt markøren ned for å legge inn leseverdien i variabelen hent mycur1 til v_row; --Lesemarkør avslutt når mycur1%notfound; --dbms_output.put_line('id:'|| v_id||', navn: '|| v_name||', kjønn: '|| v_sex||' Bursdag: '|| v_bir); --Utgangsresultat dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', kjønn: '|| v_row.stusex||' Bursdag: '|| v_row.stubir); endeløkke; lukk mycur1; --Slå av markøren slutt;
--2. Versifikator med parametere Erklær Markør mycur1(v_sex stuinfo.stusex%type) er velg * fra stuinfo hvor stusex = v_sex; --definer markører v_row stuinfo%rowtype; Begynn åpne mycur1('&gender'); --Åpen markør Loop hent mycur1 til v_row; --Lesemarkør avslutt når mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', kjønn: '|| v_row.stusex||' Bursdag: '|| v_row.stubir); endeløkke; lukk mycur1; --Slå av markøren slutt;
--3. Sirkulær markør Erklær Cursor MyCur1 er velg * fra StuInfo; --definer markører Begynn For v_row i MyCur1 Loop dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', kjønn: '|| v_row.stusex||' Bursdag: '|| v_row.stubir); endeløkke; slutt;
--4. Oppdater dataene med markøren Erklær Cursor MyCur1 er velg * fra StuINFO for oppdatering; --definer markører Begynn For v_row i MyCur1 Loop hvis v_row.stuid = '003', så Slett fra StuInfo hvor strøm av MyCur1; ellers Oppdatering StuInfo sett Stusex = 'mann' hvor strøm av MyCur1; slutt hvis; endeløkke; slutt;
velg * fra stuinfo; Oppdatering Stuinfo sett Stusex = 'kvinnelig' hvor Stum = '002';
--referansemarkør --1. Svak type Erklær Type Curname er ref-markør; --definer en markørtype (curname er typenavnet) mycur1 curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; Begynn v_sex := 'og kjønn'; hvis v_sex = 'mann', så Åpne MyCur1 for Select * fra StuInfo hvor Stusex = 'mann'; Loop hent mycur1 til v_row; --Lesemarkør avslutt når mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', kjønn: '|| v_row.stusex||' Bursdag: '|| v_row.stubir); endeløkke; ellers Åpne MyCur1 for velg * fra subinfo; Loop hent mycur1 til v_row2; --Lesemarkør avslutt når mycur1%notfound; endeløkke; slutt hvis; lukk mycur1; --Slå av markøren slutt; velg * fra subinfo;
--Sterk type Erklær type curname er ref cursor return stuinfo%rowtype; mycur1 curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; Begynn v_sex := 'og kjønn'; hvis v_sex = 'mann', så Åpne MyCur1 for Select * fra StuInfo hvor Stusex = 'mann'; ellers åpne mycur1 for valg * fra stuinfo hvor stusex = 'kvinne'; slutt hvis;
Loop hent mycur1 til v_row; --Lesemarkør avslutt når mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', navn: '|| v_row.stuname||', kjønn: '|| v_row.stusex||' Bursdag: '|| v_row.stubir); endeløkke; lukk mycur1; --Slå av markøren slutt;
|