выберите * из stuinfo; --Неявный курсор Начало dbms_output.put_line('До-запроса:'|| sql%количество строк); обновление Stuinfo Set Stusex = «женский»; dbms_output.put_line('После запроса:'|| sql%количество строк); конец;
--явный курсор --1. Обычный Объявить Курсор mycur1 выбран * из 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) выбирается * из 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 выбран * из 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 = 'Female', где stuid = '002';
--reference курсор --1. Слабый тип Объявить Тип Curname — ref cursor; --определить тип курсора (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; --Выключи курсор конец; выбрать * из subinfo;
--Сильный тип Объявить Тип CURNAME — ссылка курсор возврат 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; --Выключи курсор конец;
|