DeepEdit!

Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации

  • Увеличить размер шрифта
  • Размер шрифта по умолчанию
  • Уменьшить размер шрифта

Курсорные переменные и типы REF CURSOR

Курсорная переменная - это переменная, указывающая или ссылающаяся на курсор. В отличие от неявного курсора, который определяет
1 Использование условия EXIT WHEN allrows_cur%NOTFOUND, скорее всего, приведет к тому, что последний «пакет» строк не будет обработан. Правильно было бы использовать EXIT WHEN l_employees. COUNT = 0. - Примеч. науч.ред.
имя рабочей области для результирующего множества, курсорная переменная является ссылкой на эту рабочую область. Явный и неявный курсоры являются статическими в том смысле, что они связаны с конкретными запросами. Курсорная же переменная может открываться для любого запроса и даже для нескольких разных запросов в рамках исполнения одной программы.
Объявление типов REF CURSOR
Для работы с курсорной переменной необходимо объявить ее, что выполняется в два этапа:
Сначала следует создать тип курсора оператором TYPE.
Затем на основе созданного типа объявить фактическую курсорную переменную.
Синтаксис создания типа курсора, на основе которого объявляется курсорная переменная, следующий:

где имя_типа_курсора - имя типа курсора, а возвращаемый_тип - спецификация возвращаемых курсорным типом данных. В качестве возвращае- мого_типа может использоваться любая структура данных, допустимая в обычном предложении RETURN для курсора, которая определена при помощи атрибута %ROWTYPE или посредством ссылки на ранее определенный тип записи.
Обратите внимание, что предложение RETURN в объявлении типа REF CURSOR не является обязательным. Допустимы оба приведенных далее объявления:

Первая форма объявления REF CURSOR называется объявлением строго типизированного типа, так как оно связывает тип курсорной переменной с типом записи (или типом строки таблицы) в момент объявления. Любая объявленная таким способом курсорная переменная может использоваться только с теми командами SQL и структурами данных FETCH INTO, которые соответствуют заданному типу записи. Преимущество строго типизированного объявления REF CURSOR заключается в том, что компилятор может определить, правильно ли разработчик установил соответствие инструкций FETCH для курсорной переменной списку запроса объекта курсора.
Вторая форма объявления REF CURSOR, в которой отсутствует предложение RETURN, называется объявлением слабо типизированного типа. Такому типу курсорной переменной не сопоставляются никакие структуры данных. Курсорные переменные, объявленные на основе типов, созданных без использования предложения RETURN, могут применяться более гибко. Их можно использовать для любых запросов, с любыми
структурами возвращаемых данных, которые могут изменяться в ходе исполнения одной и той же программы.
 









jAntivirus