DeepEdit!

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

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

Канализированные табличные функции

Для выдачи нескольких столбцов данных функция PL/SQL должна воз-U вращать либо REF CURSOR, либо сборную конструкцию данных. REF CURSOR работает с данными, которые могут быть выбраны в запросе.
Сборная конструкция должна быть материализована, прежде чем ее можно будет вернуть. Огас1е9г предоставляет канализированные таблич­ные функции. Табличная функция возвращает весь набор строк (обычно как сборную конструкцию) и может запрашиваться непосредственно в операторе SQL, как если бы она была настоящей таблицей базы данных. Канализированная табличная функция действует аналогично, но возвра­щает данные по мере их создания, а не все сразу. Канализированные таб­личные функции являются более эффективными, поскольку данные возвращаются сразу же, как только это становится возможным. Например, следующая функция возвращает сборную конструкцию из 20 записей:
Канализированная табличная функция должна возвращать сборную конструкцию. Внутри функции используется оператор PIPE ROW для воз­врата отдельных элементов сборной конструкции. Функция должна завер­шаться пустым оператором RETURN. После создания функции ее можно вызвать в запросе SQL с помощью оператора TABLE:
Этот простой пример показывает, как могут использоваться канализи­рованные табличные функции. Они часто применяются для преобразова­ния данных из одного типа в другой.
Дополнительные модули
PL/SQL имеет целый ряд встроенных модулей, обеспечивающих допол­нительные возможности, такие как коммуникационные протоколы и до­ступ к файловой системе. В приложении А перечисляются модули, поставляемые с базой данных. Кратко рассмотрим некоторые из основных модулей.

 









jAntivirus