Una función es un subprograma que devuelve un valor.
La sintaxis para construir funciones es la siguiente:
Una vez creada y compilada la función podemos ejecutarla de la siguiente forma:
La sintaxis para construir funciones es la siguiente:
CREATE [OR REPLACE] FUNCTION <fn_name>[(<param1> IN <type>, <param2> IN <type>, ...)] RETURN <return_type> IS result <return_type>; BEGIN return(result); [EXCEPTION] -- Sentencias control de excepcion END [<fn_name>];
El uso de OR REPLACE permite
sobreescribir una función existente. Si se
omite, y la función existe, se producirá, un error.
La sintaxis de los parámetros es la misma
que en los procedimientos almacenado,
exceptuando que solo pueden ser de entrada.
Ejemplo:
CREATE OR REPLACE
FUNCTION fn_Obtener_Precio(p_producto VARCHAR2)
RETURN NUMBER
IS
result NUMBER;
BEGIN
SELECT PRECIO INTO result
FROM PRECIOS_PRODUCTOS
WHERE CO_PRODUCTO = p_producto;
return(result);
EXCEPTION
WHEN NO_DATA_FOUND THEN
return 0;
END ;
Si el sistema nos indica que el la función se ha creado con errores de
compilación podemos ver estos errores de
compilacion con la orden SHOW ERRORS en
SQL *Plus.
Una vez creada y compilada la función podemos ejecutarla de la siguiente forma:
DECLARE Valor NUMBER;BEGIN Valor := fn_Obtener_Precio('000100'); END;
Las funciones pueden utilizarse en sentencias SQL de
manipulación de datos (SELECT, UPDATE, INSERT y DELETE):
SELECT CO_PRODUCTO,
DESCRIPCION,
fn_Obtener_Precio(CO_PRODUCTO)
FROM PRODUCTOS;
No hay comentarios:
Publicar un comentario