Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 12902|Отговор: 1

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

[Копирай линк]
Публикувано в 19.03.2015 г. 10:53:06 ч. | | |
изберете * от 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; --Изключи курсора
край;







Предишен:"Богатство и шахматна игра" – разкриваща вътрешната история на любовта, работното място и приемния изпит за следдипломна квалификация
Следващ: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