Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Новое на сайте
Топовые новости
Новое

Инструкция CREATE/ALTER METHOD


CREATE/ALTER METHOD

Инструкция CREATE/ALTER METHOD позволяет создать новый метод базы данных или изменить уже существующий метод. Можно достаточно просто (хотя и не точно) представлять метод как пользовательскую функцию, связанную с пользовательским типом. Например, метод с именем Office, относящийся к типу Address, может принимать входной параметр VARCHAR и возвращать результат типа Address.

Неявно определяемый метод создается каждый раз, когда создается структурированный тип (за подробностями обращайтесь к разделу «Инструкция CREATE/ALTER TYPE»). Пользовательские методы создаются с помощью комбинации инструкции CREATE TYPE и CREATE METHOD.


Синтаксис SQL 2003

{CREATE | ALTER} [INSTANT | STATIC] METHOD имя_метода
([[{IN | OUT | INOUT}] параметр тип_данных [AS LOCATOR] [RESULT] […])
RETURNS тип_данных FOR имя_пользовательского_типа [SPECIFIC специальное_имя] тело_кода


Ключевые слова

{CREATE | ALTER} [INSTANT STATIC] METHOD имя_метода

Создается новый метод или изменяется уже существующий и при желании можно также указать предложения INSTANT или STATIC. ([IN | OUT | INOUT] параметр тип_данных [, …]) Объявляются один или несколько параметров, передаваемых методу, в виде заключенного в скобки списка, где параметры перечисляются через запятую.

Параметры, используемые методом, могут быть входными (IN), выходными (OUT) или входными и выходными одновременно (INOUT). Синтаксис объявления параметра следующий.

[{IN | OUT | INOUT} имя_параметра1 тип_данных

{IN | OUT | INOUT} имя_параметра2 тип_данных, […]

Убедитесь, что имя параметра уникально в пределах метода. При использовании в инструкции ALTER данное предложение добавляет параметры в уже существующий метод. За подробным описанием типов данных обращайтесь к главе 2.

AS LOCATOR

Необязательное предложение AS LOCATOR используется при объявлении внешней подпрограммы, имеющей параметр RETURNS, который представляет собой данные типа BLOB, CLOB, NCLOB, ARRAY или определенный пользователем тип. Иными словами, возвращается локатор (то есть указатель) на тип LOB, а не все это значение.

RESULT

Обозначает пользовательский тип. Для стандартных типов данных не требуется.

RETURNS

Объявляется тип данных для результатов, которые возвращает метод. Основное назначение пользовательского метода — возврат значения. Если вам нужно «на ходу» изменить тип данных параметра RETURNS, используйте предложение CAST (обращайтесь к описанию функции CAST в главе 4). Например, RETURNS VARCHAR(12) CAST FROM DATE.

FOR имя пользовательского типа

Метод связывается с заранее определенным пользовательским типом, созданным с помощью инструкции CREATE TYPE.

SPECIFIC специфическое_имя

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


Общие правила

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

CREATE FUNCTION my_fcn (orderjjdt) RETURNS INT;

CREATE METHOD my_mthd () RETURNS INT FOR orderjjdt;

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


Советы и хитрости программирования

Главная трудность методов состоит в том, что они представляют собой объектно-ориентированный подход к тем же задачам, которые решают пользовательские функции. Поскольку ту же работу они выполняют, используя другой подход, вам может быть сложно решить, какой подход использовать.

Источник