Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 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) обирається * зі 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 select * зі stuinfo для оновлення; --визначте курсори
Почніть
    для v_row у mycur1
    Петля
        якщо v_row.stuid = '003', то
           Видалити зі stuinfo, де актуальний mycur1;
        інше
           оновлення stuinfo set stusex = 'чоловічий', де поточний mycur1;
        кінець якщо;
    кінцевий контур;
кінець;

Вибрати * з Stuinfo;
Оновлення: Stuinfo Set Stusex = 'Жінка', де 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 := '& gender';
    якщо 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 := '& gender';
    якщо 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