Документация Oracle на русском языке





Сайт посвящен разработке информационных систем с использованием технологий Oracle. На сайте можно найти полезную литературу и документацию на русском языке по программированию и администрированию Oracle.Программирование баз данных на Oracle, техническая документация, литература, статьи и публикации.

Главная :: Карта


Oracle Database или Oracle RDBMS — объектно-реляционная система управления базами данных компании Oracle.



 

DeepEdit!

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

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

Создание функции

Функции похожи на процедуры. И те, и другие получают некоторые пара­метры того или иного вида (параметры описываются ниже). Функции и процедуры — это различные формы блоков PL/SQL, в состав каждого из ко­торых могут входить раздел объявлений, выполняемый раздел и раздел иск­лючительных ситуаций. Как функции, так и процедуры можно хранить в базе данных или объявлять в блоке (процедуры и функции, не хранимые в базе данных, рассматриваются в главе 10). Однако вызов процедуры являет­ся оператором PL/SQL, в то время как вызов функции — это часть некото­рого выражения. Ниже приведен пример вызова функции, возвращающей TRUE, если указанная учебная группа заполнена более чем на 80%, и FALSE в противном случае.
Функция AiiicstFull возвращает логическое значение. Ниже приводит­ся блок PL/SQL, в котором вызывается эта функция. Обратите внимание на то, что вызов функции не является оператором — он представляет со­бой фрагмент условного оператора IF, расположенного внутри цикла.
Внимание
Процедура DBMS_OUTPUT. PUTJJNE будет выводить свой аргумент на экране в SQL*Plus при условии, что используется режим set serveroutput on (см. главу 2).
Синтаксис функций Синтаксис, применяемый при создании хранимой функции, похож на синтаксис создания процедуры:
где имя_функции — это имя функции, аргумент и тип аналогичны аргумен­ту и типу, указываемым при создании процедуры, возвращаемий_тип— это тип значения, возвращаемого функцией, а тело_функции - блок PL/SQL, содержащий программный код данной функции. Для тела функции при­менимы те же правила, что и для тела процедуры. Например, имя функ­ции можно при желании указать после закрывающего END.
Как и для процедур, список аргументов необязателен. В этом случае ни при описании функции, ни при ее вызове круглые скобки указывать не нужно. Однако необходим тип, возвращаемый функцией, так как вызов функции является частью некоторого выражения. Тип функции исполь­зуется для определения типа выражения, содержащего вызов этой функции.

Внимание.
Как и для процедур, в Огас1е8\ можно использовать ключевое w слово NOCOPY и предложение AUTHID.

Оператор RETURN Внутри тела функции оператор RETURN используется для возврата управления программой в        среду с некоторым значением. Общий синтаксис оператора RETURN:
RETURN выражение;
где выражение — это возвращаемое значение. Значение выражения преоб­разуется в тип, указанный в команде RETURN при описании функции,
если, конечно, это значение уже не имеет данный тип. При выполнении оператора RETURN управление программой сразу же возвращается в вы­зывающую среду.
В функции может быть несколько операторов RETURN, хотя выполня­ться будет только один из них. Отсутствие в функции оператора RETURN является ошибкой. Ниже приведен пример использования в одной функ­ции нескольких операторов RETURN. Хотя в этой функции пять различ­ных операторов RETURN, выполняется лишь один из них, какой имен­но — зависит от заполнения учебной группы, указанной при помощи p_Pepartment и p_Course.
При использовании оператора RETURN в функции с ним должно быть связано некоторое выражение. Однако RETURN можно применять и в процедуре. В этом случае аргументы, приводящие к немедленной передаче управления в вызывающую среду, не указываются. Текущие значения фор­мальных параметров, описанных как OUT или IN OUT, присваиваются фактическим параметрам, и выполнение программы продолжается с опе­ратора, следующего за вызовом процедуры (см. ниже).
 



jAntivirus