Основы языка PL/SQL. Гаршина В.В - 39 стр.

UptoLike

Составители: 

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