ВУЗ:
Составители:
Рубрика:
39
Закрытие курсора осуществляется командой CLOSE имя_курсора.
Атрибуты явного курсора:
%ISOPEN – значение равно TRUE, если курсор открыт;
%NOTFOUND – значение равно TRUE, если последняя команда
FETCH не вернула строку;
%FOUND – значение равно TRUE, если FETCH возвращает строку.
Обратен атрибуту NOTFOUND.
%ROWCOUNT – возвращает общее количество строк, выбранных на
данный момент.
Обычно для обработки нескольких строк из явного курсора создается
цикл, при
каждом выполнении которого выбирается одна строка. В конце
концов обрабатываются все строки активного набора, и в результате не-
удачной выборки атрибут %NOTFOUND принимает значение TRUE («ис-
тинно»). Прежде чем ссылаться на курсор, проверяйте успех каждой вы-
борки с помощью атрибутов явного курсора.
Выборка строк возможна только при открытом курсоре (это можно
проверить с
помощью атрибута %ISOPEN). Для выборки точного количе-
ства строк можно либо создать цикл FOR с числовым параметром, либо
использовать простой цикл и определять момент выхода из цикла с помо-
щью атрибута %ROWCOUNT. Пример использования курсора:
PROCEDURE ord_process
(v_ord_id IN s_item.ord%TYPE)
IS
v_product_id s_item.product_id%TYPE;
v_item_total NUMBER (11,2);
v_order_total NUMBER (11,2):=0;
CURSOR item_cursor IS
SELECT product_id, price * quantity
FROM s_item
WHERE ord_id=v_ord_id;
BEGIN
OPEN item_cursor
LOOP
FETCH
item_cursor
INTO v_product_id, v_item_total;
Закрытие курсора осуществляется командой CLOSE имя_курсора. Атрибуты явного курсора: %ISOPEN значение равно TRUE, если курсор открыт; %NOTFOUND значение равно TRUE, если последняя команда FETCH не вернула строку; %FOUND значение равно TRUE, если FETCH возвращает строку. Обратен атрибуту NOTFOUND. %ROWCOUNT возвращает общее количество строк, выбранных на данный момент. Обычно для обработки нескольких строк из явного курсора создается цикл, при каждом выполнении которого выбирается одна строка. В конце концов обрабатываются все строки активного набора, и в результате не- удачной выборки атрибут %NOTFOUND принимает значение TRUE («ис- тинно»). Прежде чем ссылаться на курсор, проверяйте успех каждой вы- борки с помощью атрибутов явного курсора. Выборка строк возможна только при открытом курсоре (это можно проверить с помощью атрибута %ISOPEN). Для выборки точного количе- ства строк можно либо создать цикл FOR с числовым параметром, либо использовать простой цикл и определять момент выхода из цикла с помо- щью атрибута %ROWCOUNT. Пример использования курсора: PROCEDURE ord_process (v_ord_id IN s_item.ord%TYPE) IS v_product_id s_item.product_id%TYPE; v_item_total NUMBER (11,2); v_order_total NUMBER (11,2):=0; CURSOR item_cursor IS SELECT product_id, price * quantity FROM s_item WHERE ord_id=v_ord_id; BEGIN OPEN item_cursor LOOP FETCH item_cursor INTO v_product_id, v_item_total; 39
Страницы
- « первая
- ‹ предыдущая
- …
- 37
- 38
- 39
- 40
- 41
- …
- следующая ›
- последняя »