изберете * от stuinfo; --Имплицитен курсор Начало dbms_output.put_line('Преди заявка:'|| sql%брой редове); актуализация Stuinfo set stusex = 'женски'; dbms_output.put_line('След заявка:'|| sql%брой редове); край;
--експлицитен курсор --1. Обикновен Обяви Курсор mycur1 е Select * от stuinfo; --дефинирай курсори --v_id stuinfo.stuid%type; --v_name stuinfo.stuname%type; --v_sex stuinfo.stusex%type; --v_bir stuinfo.stubir%type; v_row stuinfo%rowtype; Начало Отвори mycur1; --Отвори курсора Обиколка --вземи mycur1 в v_id,v_name,v_sex,v_bir; --Преместете курсора надолу, за да въведете стойността за четене в променливата Вземи mycur1 в v_row; --Чети курсора излез, когато mycur1%не е намерен; --dbms_output.put_line('id:'|| v_id||', име: '|| v_name||', пол: '|| v_sex||' Рожден ден: '|| v_bir); --Изходен резултат dbms_output.put_line('id:'|| v_row.stuid||', име: '|| v_row.stuname||', пол: '|| v_row.stusex|' Рожден ден: '|| v_row.stubir); краен кръг; Затвори mycur1; --Изключи курсора край;
--2. Версификатор с параметри Обяви курсор mycur1(v_sex stuinfo.stusex%type) е select * от stuinfo, където stusex = v_sex; --дефинирай курсори v_row stuinfo%rowtype; Начало отвори mycur1('&gender'); --Отвори курсора Обиколка Вземи mycur1 в v_row; --Чети курсора излез, когато mycur1%не е намерен; dbms_output.put_line('id:'|| v_row.stuid||', име: '|| v_row.stuname||', пол: '|| v_row.stusex|' Рожден ден: '|| v_row.stubir); краен кръг; Затвори mycur1; --Изключи курсора край;
--3. Кръгов курсор Обяви Курсор mycur1 е Select * от stuinfo; --дефинирай курсори Начало за v_row в mycur1 Обиколка dbms_output.put_line('id:'|| v_row.stuid||', име: '|| v_row.stuname||', пол: '|| v_row.stusex|' Рожден ден: '|| v_row.stubir); краен кръг; край;
--4. Актуализирайте данните с курсора Обяви курсор mycur1 е избран * от stuinfo за актуализация; --дефинирай курсори Начало за v_row в mycur1 Обиколка ако v_row.stuid = '003', тогава Изтрий от stuinfo, където е актуален mycur1; Друго актуализация stuinfo set stusex = 'мъжки', където текущото на mycur1; край ако; краен кръг; край;
изберете * от stuinfo; Актуализация: stuinfo set stusex = 'женски', където stuid = '002';
--reference курсор --1. Слаб тип Обяви тип curname е ref курсор; --дефинирай тип курсор (curname е името на типа) mycur1 curname; -- v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; v_row2 subinfo%rowtype; Начало v_sex := '& пол'; ако v_sex = 'мъжки', тогава Отворете mycur1 за избор * от stuinfo, където stusex = 'мъжки'; Обиколка Вземи mycur1 в v_row; --Чети курсора излез, когато mycur1%не е намерен; dbms_output.put_line('id:'|| v_row.stuid||', име: '|| v_row.stuname||', пол: '|| v_row.stusex|' Рожден ден: '|| v_row.stubir); краен кръг; Друго отворете mycur1 за избор * от subinfo; Обиколка Вземи mycur1 в v_row2; --Чети курсора излез, когато mycur1%не е намерен; краен кръг; край ако; Затвори mycur1; --Изключи курсора край; изберете * от подинформация;
--Силен тип Обяви тип curname е ref cursor return stuinfo%rowtype; mycur1 curname; v_sex stuinfo.stusex%type; v_row stuinfo%rowtype; Начало v_sex := '& пол'; ако v_sex = 'мъжки', тогава Отворете mycur1 за избор * от stuinfo, където stusex = 'мъжки'; Друго отворете mycur1 за избор * от stuinfo, където stusex = 'жена'; край ако;
Обиколка Вземи mycur1 в v_row; --Чети курсора излез, когато mycur1%не е намерен; dbms_output.put_line('id:'|| v_row.stuid||', име: '|| v_row.stuname||', пол: '|| v_row.stusex|' Рожден ден: '|| v_row.stubir); краен кръг; Затвори mycur1; --Изключи курсора край;
|