Función definida por el usuario


Una función definida por el usuario ( UDF ) es una función proporcionada por el usuario de un programa o entorno, en un contexto donde la suposición habitual es que las funciones están integradas en el programa o entorno. Las UDF generalmente se escriben para los requisitos de su creador.

En algunas implementaciones antiguas del lenguaje de programación BASIC , las funciones definidas por el usuario se definen utilizando la sintaxis "DEF FN". Los dialectos más modernos de BASIC están influenciados por el paradigma de programación estructurada , donde la mayor parte o todo el código se escribe como funciones o procedimientos definidos por el usuario, y el concepto se vuelve prácticamente redundante.

En los sistemas de administración de bases de datos relacionales , una función definida por el usuario proporciona un mecanismo para ampliar la funcionalidad del servidor de la base de datos agregando una función, que se puede evaluar en declaraciones de lenguaje de consulta estándar (generalmente SQL ). El estándar SQL distingue entre funciones escalares y de tabla. Una función escalar devuelve solo un valor único (o NULL ), mientras que una función de tabla devuelve una tabla (relacional) que comprende cero o más filas, cada fila con una o más columnas.

Las funciones definidas por el usuario en SQL se declaran mediante la CREATE FUNCTIONinstrucción. Por ejemplo, una función que convierte grados Celsius a Fahrenheit podría declararse así:

Una vez creada, una función definida por el usuario puede usarse en expresiones en sentencias SQL. Por ejemplo, se puede invocar cuando se permiten la mayoría de las demás funciones intrínsecas. Esto también incluye declaraciones SELECT , donde la función se puede usar contra datos almacenados en tablas en la base de datos. Conceptualmente, la función se evalúa una vez por fila en dicho uso. Por ejemplo, suponga una tabla nombrada Elements, con una fila para cada elemento químico conocido. La tabla tiene una columna llamada BoilingPoint para el punto de ebullición de ese elemento, en grados Celsius. La consulta

recuperaría el nombre y el punto de ebullición de cada fila. Invoca la función definida por el usuario CtoF como se declaró anteriormente para convertir el valor en la columna a un valor en Fahrenheit.