Wybierz * z stuinfo; --Kursor niejawny zaczynaj dbms_output.put_line('Before-query:'|| sql%rowcount); aktualizacja stuinfo – Stusex = 'kobieta'; dbms_output.put_line('After query:'|| sql%rowcount); koniec;
--kursor jawny --1. Powszechne deklaruj Kursor Mycur1 to select * z stuinfo; --definiuj kursory --v_id stuinfo.stuid%type; --v_name stuinfo.stuname%type; --v_sex stuinfo.stusex%type; --v_bir stuinfo.stubir%type; v_row stuinfo%rowtype; zaczynaj otwórz mycur1; --Otwórz kursor pętla --pobierz mycur1 do v_id,v_name,v_sex,v_bir; --Przesuń kursor w dół, aby umieścić wartość odczytu w zmiennej pobierz mycur1 do v_row; --Czytaj kursor wyjdź, gdy mycur1%notfound; --dbms_output.put_line('id:'|| v_id||', imię: '|| v_name||', płeć: '|| v_sex||' Urodziny: '|| v_bir); --Wynik wyjściowy dbms_output.put_line('id:'|| v_row.stuid||', imię: '|| v_row.stuname||', płeć: '|| v_row.stusex||' Urodziny: '|| v_row.stubir); pętla końcowa; Close mycur1; --Wyłącz kursor koniec;
--2. Wersyfikator z parametrami deklaruj Kursor Mycur1(v_sex stuinfo.stusex%type) jest select * ze stuinfo, gdzie stusex = v_sex; --definiuj kursory v_row stuinfo%rowtype; zaczynaj otwórz mycur1('&gender'); --Otwórz kursor pętla pobierz mycur1 do v_row; --Czytaj kursor wyjdź, gdy mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', imię: '|| v_row.stuname||', płeć: '|| v_row.stusex||' Urodziny: '|| v_row.stubir); pętla końcowa; Close mycur1; --Wyłącz kursor koniec;
--3. Kursor kołowy deklaruj Kursor Mycur1 to select * z stuinfo; --definiuj kursory zaczynaj dla v_row w mycur1 pętla dbms_output.put_line('id:'|| v_row.stuid||', imię: '|| v_row.stuname||', płeć: '|| v_row.stusex||' Urodziny: '|| v_row.stubir); pętla końcowa; koniec;
--4. Zaktualizuj dane kursorem deklaruj Kursor Mycur1 to select * from stuinfo dla aktualizacji; --definiuj kursory zaczynaj dla v_row w mycur1 pętla jeśli v_row.stuid = '003' to usuń ze stuinfo gdzie aktualny Mycur1; else aktualizacja stuinfo ustaw stusex = 'męskie', gdzie obecny w mycur1; zakończ jeśli; pętla końcowa; koniec;
Wybierz * z stuinfo; aktualizacja stuinfo ustaw stusex = 'kobieta', gdzie stuid = '002';
--kursor odniesienia --1. Słaby typ deklaruj typowa nazwa curname to ref cursor; --zdefiniuj typ kursora (curname to nazwa typu) mycur1 curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; zaczynaj v_sex := '& gender'; jeśli v_sex = 'mężczyzna', to Otwórz mycur1 dla select * ze stuinfo, gdzie stusex = 'mężczyzna'; pętla pobierz mycur1 do v_row; --Czytaj kursor wyjdź, gdy mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', imię: '|| v_row.stuname||', płeć: '|| v_row.stusex||' Urodziny: '|| v_row.stubir); pętla końcowa; else otwórz mycur1, aby wybrać * z subinfo; pętla pobierz mycur1 do v_row2; --Czytaj kursor wyjdź, gdy mycur1%notfound; pętla końcowa; zakończ jeśli; Close mycur1; --Wyłącz kursor koniec; Wybierz * z subinfo;
--Mocne pismo deklaruj typowa nazwa curname to ref kursor return stuinfo%rowtype; mycur1 curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; zaczynaj v_sex := '& gender'; jeśli v_sex = 'mężczyzna', to Otwórz mycur1 dla select * ze stuinfo, gdzie stusex = 'mężczyzna'; else Otwórz mycur1 dla select * ze stuinfo, gdzie stusex = 'kobieta'; zakończ jeśli;
pętla pobierz mycur1 do v_row; --Czytaj kursor wyjdź, gdy mycur1%notfound; dbms_output.put_line('id:'|| v_row.stuid||', imię: '|| v_row.stuname||', płeć: '|| v_row.stusex||' Urodziny: '|| v_row.stubir); pętla końcowa; Close mycur1; --Wyłącz kursor koniec;
|