Пользовательская функция


Пользовательская функция ( UDF ) — это функция , предоставляемая пользователем программы или среды в контексте, где обычно предполагается, что функции встроены в программу или среду. UDF обычно пишутся по требованию их создателя.

В некоторых старых реализациях языка программирования BASIC определяемые пользователем функции определяются с использованием синтаксиса "DEF FN". На более современные диалекты BASIC влияет парадигма структурированного программирования , где большая часть или весь код написан как определяемые пользователем функции или процедуры, и эта концепция становится практически избыточной.

В системах управления реляционными базами данных определяемая пользователем функция обеспечивает механизм расширения функциональности сервера базы данных путем добавления функции, которая может быть оценена в операторах стандартного языка запросов (обычно SQL ). Стандарт SQL различает скалярные и табличные функции. Скалярная функция возвращает только одно значение (или NULL ), тогда как табличная функция возвращает (реляционную) таблицу, содержащую ноль или более строк, каждая строка с одним или несколькими столбцами.

Пользовательские функции в SQL объявляются с помощью CREATE FUNCTIONинструкции. Например, функция, преобразующая градусы Цельсия в градусы Фаренгейта, может быть объявлена ​​следующим образом:

После создания пользовательская функция может использоваться в выражениях операторов SQL. Например, его можно вызвать там, где разрешено большинство других встроенных функций. Это также включает операторы SELECT , где функция может использоваться для данных, хранящихся в таблицах базы данных. Концептуально при таком использовании функция оценивается один раз для каждой строки. Например, предположим, что у вас есть таблица с именем Elementsи строкой для каждого известного химического элемента. В таблице есть столбец BoilingPoint для температуры кипения этого элемента в градусах Цельсия. Запрос

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