Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Работа с Oracle / 19 - Курсоры в PL SQL.ppt
Скачиваний:
9
Добавлен:
28.06.2021
Размер:
387.07 Кб
Скачать

Пример использования курсорного цикла (2)

Конструкция

WHERE CURRENT OF

Когда курсор открывается для обновления или удаления записей, можно использовать конструкцию

WHERE CURRENT OF имя_курсора

для доступа к таблице и строке, которые соответствуют последней записи, выбранной в конструкции WHERE оператора UPDATE или DELETE.

Это демонстрируется в приведенном ниже коде, который снижает цены в таблице BOOKS на 3%.

Использование курсора для обновления записей (1)

SELECT book_ID, b_price

FROM Books;

DECLARE

CURSOR book_cur IS

SELECT * FROM Books

FOR UPDATE OF b_price;

BEGIN

FOR book_rec IN book_cur

Использование курсора для обновления записей (2)

LOOP

UPDATE Books

SET b_price = (book_rec.b_price * 0.97) WHERE CURRENT OF book_cur;

END LOOP; END;

/

SELECT book_ID, b_price FROM Books;