Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 12902|Ответ: 1

[Источник] Оракулные курсоры, неявные курсоры и параметризованные курсоры

[Скопировать ссылку]
Опубликовано 19.03.2015 10:53:06 | | |
выберите * из 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; --Выключи курсор
конец;







Предыдущий:«Богатство и шахматная партия» — раскрывающая внутреннюю историю любви, работы и вступительных экзаменов в аспирантуру
Следующий:php5.2.17 должен изменить значение cgi.force_redirect с 1 до 0 при установке
Опубликовано 19.03.2015 11:21:08 |
Отложите lesson6.rar (920 Bytes, Количество скачиваний: 0)
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com