![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Список атрибутов, используемых совместно с курсором
Пример объявления курсора по таблице Авторы: DECLARE my_id_author NUMBER(3); -- переменная для значения Code_author my_Name_author CHAR(30); -- переменная для значения Name_author my_Birthday DATE; -- переменная для значения Birthday CURSOR c1 IS SELECT * FROM ADMIN_BOOKS.Authors WHERE Code_author > 20;
Пример объявления курсора с выбором автора и одновременным помещением результата в переменную: DECLARE my_authors ADMIN_BOOKS.Authors%ROWTYPE; CURSOR c2 RETURN ADMIN_BOOKS.Authors%ROWTYPE IS SELECT * FROM ADMIN_BOOKS.Authors WHERE Code_author = 20; Пример объявления курсора с использованием полей со значениями по умолчанию: DECLARE CURSOR c3 (low NUMBER(3) DEFAULT 0, high NUMBER(3) DEFAULT 105) IS SELECT * FROM ADMIN_BOOKS.Authors WHERE Code_author> low AND Code_author< high; Пример работы с курсором с циклом LOOP: SET SERVEROUTPUT ON DECLARE CURSOR c1 IS SELECT Publish, Code_publish FROM ADMIN_BOOKS.Publishing_house WHERE Code_publish< 11; name1 ADMIN_BOOKS.Publishing_house.Publish %TYPE; code1 ADMIN_BOOKS.Publishing_house.Code_publish%TYPE; BEGIN OPEN c1; LOOP FETCH c1 INTO name1, code1; EXIT WHEN c1%NOTFOUND OR c1%NOTFOUND IS NULL; DBMS_OUTPUT.PUT_LINE(c1%ROWCOUNT || '. ' || name1); IF c1%ROWCOUNT = 5 THEN DBMS_OUTPUT.PUT_LINE('--- 5-я запись ---'); END IF; END LOOP; CLOSE c1; END;
Пример работы с курсором с циклом WHILE: SET SERVEROUTPUT ON DECLARE name2 ADMIN_BOOKS.Authors.Name_author %TYPE; CURSOR authors_desc IS SELECT Name_author FROM ADMIN_BOOKS.Authors ORDER BY Name_author DESC; BEGIN OPEN authors_desc; FETCH authors_desc INTO name2; DBMS_OUTPUT.PUT_LINE(name2); WHILE authors_desc%found LOOP FETCH authors_desc INTO name2; DBMS_OUTPUT.PUT_LINE(name2); END LOOP; CLOSE authors_desc; END; Пример работы с переменной типа Таблица
|