DeepEdit!

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

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

Строгий и слабый контроль типов REF CURSOR

Есть два вида контроля типа данных REF CURSOR, строгий и слабый. Разница в том, что для слабо типизированной переменной REF CURSOR заранее неизвестно, на какой набор данных она будет ссылаться; в то время как при строгой типизации явно указывается, каким будет возвращаемый набор данных.
Тип данных SYS_REFCURSOR, использованный в двух предыдущих примерах, появился в Oracle9/ Database. Он позволяет быстро определять переменные REF CURSOR со слабым контролем типа. В предыдущих версиях они определялись таким способом:

Слабо типизированные переменные REF CURSOR могут использоваться практически любыми запросами, так как они не привязаны к конкретным структурам данных.

Фактический запрос, сопоставленный ссылке REF CURSOR, подвергается проверке и разбору и помещается в область SGA точно так же, как любой другой курсор.

Заметьте, однако, что для REF CURSOR не действует мягкое закрытие, так что они не могут воспользоваться преимуществом последующего «сверхбыстрого» открытия. То есть курсоры типа REF CURSOR будут работать медленнее, чем обычные курсоры.
Кроме того, слабо типизированные переменные REF CURSOR создают дополнительную нагрузку, когда Oracle «на лету» определяет структуру возвращаемого набора данных. Поэтому для лучшей производительности следует по возможности использовать строгий контроль типов для REF CURSOR. Вот несколько примеров строгой типизации переменных REF CURSOR:

Попытка использовать переменную REF CURSOR для получения набора данных несоответствующего типа приведет к появлению сообщения об ошибке ORA-06550.

Атрибуты REF CURSOR
Курсоры типа REF CURSOR имеют тот же полный набор атрибутов, что и явные курсоры, как показано в примере:
 









jAntivirus