FirebirdSQL logo
 PACKAGE BODYFILTER 

Кто может объявить внешнюю функцию?

Выполнить оператор DECLARE EXTERNAL FUNCTION могут:

Пользователь, объявивший внешнюю функцию, становится её владельцем.

Примеры

Example 1. Объявление внешней функции с передачей входных и выходных параметров по ссылке
DECLARE EXTERNAL FUNCTION addDay
TIMESTAMP, INT
RETURNS TIMESTAMP
ENTRY_POINT 'addDay' MODULE_NAME 'fbudf';
Example 2. Объявление внешней функции с передачей входных и выходных параметров по дескриптору
DECLARE EXTERNAL FUNCTION invl
INT BY DESCRIPTOR, INT BY DESCRIPTOR
RETURNS INT BY DESCRIPTOR
ENTRY_POINT 'idNvl' MODULE_NAME 'fbudf';
Example 3. Объявление внешней функции с передачей входных параметров по ссылке, выходных по значению
DECLARE EXTERNAL FUNCTION isLeapYear
TIMESTAMP
RETURNS INT BY VALUE
ENTRY_POINT 'isLeapYear' MODULE_NAME 'fbudf';
Example 4. Объявление внешней функции с передачей входных и выходных параметров по дескриптору. В качестве выходного параметра используется второй параметр функции.
DECLARE EXTERNAL FUNCTION i64Truncate
NUMERIC(18) BY DESCRIPTOR, NUMERIC(18) BY DESCRIPTOR
RETURNS PARAMETER 2
ENTRY_POINT 'fbtruncate' MODULE_NAME 'fbudf';

ALTER EXTERNAL FUNCTION

Назначение

Изменение точки входа и/или имени модуля для функции определённой пользователем (UDF).

Доступно в

DSQL

Синтаксис
ALTER EXTERNAL FUNCTION funcname
[ENTRY_POINT 'new_entry_point']
[MODULE_NAME 'new_library_name'];
Table 1. Параметры оператора ALTER EXTERNAL FUNCTION
Параметр Описание

funcname

Имя внешней функции.

new_entry_point

Новое имя экспортируемой функции (точки входа).

new_library_name

Новое имя модуля, в котором расположена функция.

Оператор ALTER EXTERNAL FUNCTION изменяет точку вход и/или имя модуля для функции определённой пользователем (UDF). При этом существующие зависимости сохраняются.

Предложение ENTRY_POINT позволяет указать новую точку входа (имя экспортируемой функции).

Предложение MODULE_NAME позволяет указать новое имя модуля, в котором расположена экспортируемая функция.

Кто может изменить внешнюю функцию?

Выполнить оператор ALTER EXTERNAL FUNCTION могут:

  • Администраторы

  • Владелец внешней функции;

  • Пользователи с привилегией ALTER ANY FUNCTION.