Теория для лабораторной работы №5 - "PL/SQL – курсоры и хранимые процедуры", страница 14

   CLOSE c1;                                  

 END;

Хранимые процедуры и функции

CREATE FUNCTION

 

Назначение команды: для создания функции пользователя.

Функция пользователя или хранимая функция – это именованное множество PL/SQL операторов. Хранимые функции очень похожи на процедуры, за исключением того, что функции возвращают значение в точку их вызова.

Функции пользователя могут использоваться как часть выражения SQL.

 

Требования к использованию: до того, как хранимая функция может быть создана, пользователь SYS должен запустить сценарий SQL DBMSSTDX.SQL. Точное имя и местоположение этого сценария может варьироваться в зависимости от вашей операционной системы.

Чтобы создать функцию в вашей собственной схеме, вы должны иметь системную привилегию CREATE PROCEDURE. Чтобы создать функцию в схеме другого пользователя, вы должны иметь системную привилегию CREATE ANY PROCEDURE.

 

Синтаксис:

 

Ключевые слова и параметры:

 

OR REPLACE

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

Schema

Имя схемы, которая содержит функцию. Если вы опустите её имя, Oracle создаст функцию в вашей текущей схеме.

Function

Имя создаваемой функции.

Argument

Имя аргумента функции. Если функции не передаются аргументы, вы можете опустить скобки, следующие за именем функции.

IN

Определяет, что вы должны обеспечить значение аргумента когда вызываете функцию (по умолчанию).

OUT

Определяет, что функция устанавливает значение аргумента.

IN OUT

Определяет, что значение аргумента может быть передано вами или установлено функцией.

Data type

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

Определяет тип данных, возвращаемого функцией значения. Т.к. каждая функция должна возвращать значения, эта клауза обязательна. Возвращаемое значение может быть любого типа, поддерживаемого PL/SQL.

Pl/sql_subprogram_body

Определение функции. Определение функции пишется в PL/SQL.