Руководство по языку sql
Download 1.22 Mb. Pdf ko'rish
|
Firebird3 SQL features
CREATE FUNCTION FN_T
RETURNS DOUBLE PRECISION DETERMINISTIC AS begin return rand(); end -- функция будет вычислена дважды и вернѐт 2 разных значения select fn_t() from rdb$database union all select fn_t() from rdb$database -- функция будет вычислена единожды и вернѐт 2 одинаковых значения with t(n) as ( select 1 from rdb$database union all select 2 from rdb$database ) select n, fn_t() from t Новые возможности языка SQL Firebird 3.0 41 См. http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1081535&msg=15694955 В необязательной секции declarations описаны локальные переменные, именованные курсоры и подпрограммы. После секции объявления в теле хранимой функции, следует блок PSQL операторов, заключѐнных в операторные скобки BEGIN и END. Хранимая функция может быть расположена во внешнем модуле. В этом случае вместо тела функции указывается место расположения функции во внешнем модуле с помощью предложения EXTERNAL NAME. Аргументом этого предложения является строка, в которой через разделитель указано имя внешнего модуля, имя функции внутри модуля и определѐнная пользователем информация. В предложении ENGINE указывается имя движка для обработки подключения внешних модулей. В Firebird для работы с внешними модулями используется движок UDR. Предупреждение: Не следует путать внешние функции, объявленные как DECLARE EXTERNAL FUNCTION , так же известные как UDF, с функциями расположенными во внешних модулях объявленных как CREATE FUNCTION … EXTERNAL NAME, называемых UDR (User Defined Routine ). Первые являются унаследованными (Legacy) из предыдущих версий Firebird . Их возможности существенно уступают возможностям нового типа внешних функций. Создать новую хранимую функцию может: SYSDBA; Владелец базы данных; Любой пользователь, которому выдана привилегия на создание функций (GRANT CREATE FUNCTION TO [USER | ROLE] Любой пользователь, вошедший с ролью RDB$ADMIN; Пользователь root операционной системы Linux; администраторы Windows, если используется доверительная авторизация (trusted authentication) и включено автоматическое предоставление роли RDB$ADMIN администраторам Windows. Пользователь, создавший хранимую процедуру, становится еѐ владельцем. Примеры: 1. Функция сложения двух целочисленных значений. Второй параметр объявлен необязательным и имеет значение по умолчанию равное нулю. Download 1.22 Mb. Do'stlaringiz bilan baham: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling