Руководство по языку sql


Download 1.22 Mb.
Pdf ko'rish
bet31/62
Sana23.04.2023
Hajmi1.22 Mb.
#1393455
1   ...   27   28   29   30   31   32   33   34   ...   62
Bog'liq
Firebird3 SQL features

CREATE FUNCTION ADD_INT(A INT, B INT DEFAULT 0)
RETURNS INT 


Новые возможности языка SQL Firebird 3.0 
42 
AS 
BEGIN 
RETURN A+B; 
END 
Вызов в запросе: 
SELECT ADD_INT(2, 3) AS R FROM RDB$DATABASE 
Вызов внутри PSQL кода, второй необязательный параметр не указан: 
MY_VAR = ADD_INT(A); 
2. 
Детерминированная функция, возвращающая значение константы e
CREATE FUNCTION FN_E()
RETURNS DOUBLE PRECISION DETERMINISTIC 
AS 
BEGIN 
RETURN EXP(1); 
END 
3. 
Функция, возвращающая имя мнемоники по имени столбца и значения 
мнемоники. 
CREATE FUNCTION GET_MNEMONIC (
AFIELD_NAME TYPE OF COLUMN RDB$TYPES.RDB$FIELD_NAME,
ATYPE TYPE OF COLUMN RDB$TYPES.RDB$TYPE)
RETURNS TYPE OF COLUMN RDB$TYPES.RDB$TYPE_NAME
AS
BEGIN
RETURN (SELECT RDB$TYPE_NAME
FROM RDB$TYPES
WHERE RDB$FIELD_NAME = :AFIELD_NAME
AND RDB$TYPE = :ATYPE);
END 
4. 
Создание функции находящейся во внешнем модуле (UDR). Реализация 
функции расположена во внешнем модуле udrcpp_example. Имя функции 
внутри модуля - wait_event. 
create function wait_event ( 
event_name varchar(31) character set ascii 
returns integer 
external name 'udrcpp_example!wait_event' 
engine udr; 
См. также 
CREATE OR ALTER FUNCTION

RECREATE FUNCTION

ALTER FUNCTION

DROP FUNCTION
 


Новые возможности языка SQL Firebird 3.0 
43 
ALTER FUNCTION 
Изменение существующей хранимой функции. 
Доступно: DSQL 
Синтаксис
ALTER FUNCTION funcname 
[(<inparam> [, <inparam> ...])] 
RETURNS  [COLLATE collation] [DETERMINISTIC] 
{ EXTERNAL NAME '' ENGINE  }
| { 
AS 
[<declarations>] 
BEGIN 
[<PSQL_statements>] 
END 

Подробнее см. 
CREATE FUNCTION
 
Описание:
Оператор ALTER FUNCTION позволяет изменять состав и характеристики 
входных параметров, типа выходного значения, локальных переменных, 
именованных курсоров, подпрограмм и тело хранимой функции. Для внешних 
(UDR) 
вы можете изменить точку входа и имя движка. Внешние функции, 
объявленные как DECLARE EXTERNAL FUNCTION, так же известные как UDF
невозможно преобразовать в PSQL функции и наоборот. После выполнения 
существующие привилегии и зависимости сохраняются. 
Предупреждение: 
Будьте осторожны при изменении количества и типов входных параметров 
хранимых 
функций. 
Существующий 
код 
приложения 
может 
стать 
неработоспособным из-за того, что формат вызова функции несовместим с новым 
описанием параметров. Кроме того, PSQL модули, использующие изменѐнную 
хранимую функцию, могут стать некорректными. Информация о том, как это 
обнаружить, находится в разделе RDB$VALID_BLR. 
Изменить хранимую функцию могут: 

владелец хранимой функции; 

пользователь SYSDBA; 

Любой пользователь, которому выдана привилегия на изменение любой 
функций (GRANT ALTER ANY FUNCTION TO [USER | ROLE] name>); 


Новые возможности языка SQL Firebird 3.0 
44 

любой пользователь, подключенный с ролью RDB$ADMIN (роль должна 
быть назначена пользователю); 

пользователь операционной системы root (Linux); 

администраторы Windows, если используется доверительная авторизация 
(trusted authentication) 
и включено автоматическое предоставление роли 
RDB$ADMIN 
администраторам Windows. 
Примеры
Изменение функции сложения целочисленных значений. Вместо двух теперь 
складывается три значения. 

Download 1.22 Mb.

Do'stlaringiz bilan baham:
1   ...   27   28   29   30   31   32   33   34   ...   62




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling