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

Внешние табличные пользовательские функции OLE-DB в DBS

Этот вариант инструкции CREATE FUNCTION регистрирует пользовательскую внешнюю табличную функцию OLE-DB для доступа к данным поставщика OLE-DB. Табличную функцию можно использовать в предложении FROM инструкции SELECT. Эти функции полезны для подключения к источникам реляционных данных, не относящихся к DB2. Во внешних табличных пользовательских функциях OLE-DB можно использовать следующие предложения:

CREATE FUNCTION имя_объекта (имя_параметра тип_данных) [, …]) RETURNS TABLE тип_данных[…]] [SPECIFIC специальное_имя]

[LANGUAGE OLEDB] [EXTERNAL NAME имя_внешней_процедуры] [DETERMINISTIC | NOT DETERMINISTIC] [[NO] EXTERNAL ACTION]

[STATIC DISPATCH] [CALLED ON NULL INPUT |

RETURNS NULL ON NULL INPUT] [CARDINALITY int] блок_кода

В следующем примере регистрируется табличная функция OLE-DB, которая извлекает информацию о заказе, order, из базы данных Microsoft Access с именем Northwind.

CREATE FUNCTION orders ()

RETURNS TABLE (orderid INTEGER, customerid CHAR(5), employeeid INTEGER, orderdate

TIMESTAMP, requireddate TIMESTAMP, shippeddate TIMESTAMP, shipvia INTEGER, freight DEC(19.4))

LANGUAGE OLEDB

EXTERNAL NAME ‘iorders!Provider=Microsoft. Jet, OLEDB. 3. 51;

Data Source=c:sqllibsamplesoledbnwind. mdb’;

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

Этот вариант инструкции CREATE FUNCTION регистрирует пользовательскую функцию, основанную на другой существующей скалярной или столбцовой функции. С помощью этой инструкции также можно зарегистрировать шаблон функции сервером приложений, который играет роль объединенного сервера (federated server). (Шаблон функции — это частично реализованная функция, в которой нет исполняемого кода, но есть связь с функцией-источником данных. Как только связь устанавливается, пользователь может указывать шаблон функции в запросах к объединенному серверу. Объединенный сервер будет вызывать функцию-источник данных и возвращать значения, соответствующие тем, которые указаны в части RETURNS определения шаблона.) В шаблонных пользовательских функциях можно использовать следующие предложения. CREATE FUNCTION имя_объекта (имя_параметра тип_данных [, …]) RETURNS тип_данных [, …]]

[SOURCE {имя_объекта [входной_аргумент [, …]] |

[SPECIFIC специальное_имя]] [AS TEMPLATE [DETERMINISTIC | NOT DETERMINISTIC]

[[NO] EXTERNAL ACTION]] блок_кода

Например, следующая шаблонная пользовательская функция основывается на скалярной функции report_reader.center, созданной ранее в этом разделе. Следующая функция, называющаяся fn_center, принимает только целочисленные аргументы.

CREATE FUNCTION fn_center (INTEGER, INTEGER) RETURNS FLOAT

SOURCE report_reader, center (INTEGER, FLOAT);

В следующем примере с использованием объединенного сервера (federated server) мы можем вызывать пользовательскую функцию Oracle под названием statistics из схемы scott, которая возвращает статистику по таблице в форме значения с плавающей точкой двойной точности.

CREATE FUNCTION scott.statistics (DOUBLE, DOUBLE) RETURNS DOUBLE AS TEMPLATE DETERMINISTIC NO EXTERNAL ACTION;

Источник