Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
FUNCIONES EN PL/SQL
I.
OBJETIVOS
II.
MARCO TERICO
Definicin de Funcin
Una funcin es un bloque nombrado PL/SQL que devuelve un valor.
Una funcin puede estar almacenada en la B.D., como objeto de la B.D., para
repetidas ejecuciones.
Descripcin de la sintaxis:
Nombre-parmetro: es el nombre que queramos dar al parmetro. Podemos
utilizar Mltiples parmetros. En caso de no necesitarlos, podemos omitir los
parntesis.
IN: especifica que el parmetro es de entrada y que por tanto dicho parmetro tiene
que tener un valor en el momento de llamar a la funcin o procedimiento. Si no se
especifica nada, los parmetros son por defecto de tipo entrada.
Lab. Administracin de Base de Datos
(IS-443)
OUT: especifica que se trata de un parmetro de salida. Son parmetros cuyo valor
es devuelto despus de la ejecucin el procedimiento al bloque PL/SQL que lo llam.
Las funciones PLSQL no admiten parmetros de salida.
IN OUT: Son parmetros de entrada y salida a la vez.
Tipo-de-dato: Indica el tipo de dato PLSQL que corresponde al parmetro
(NUMBER, VARCHAR2, etc).
Valor: es el valor que la funcin debe devolver y normalmente est almacenado en
una variable.
Desde dnde llamarlas
Como columna de un SELECT.
Condiciones en clusulas WHERE y HAVING.
Clusulas ORDER BY y GROUP BY.
Clusula VALUES de un comando INSERT.
Clusula SET de un comando UPDATE.
Borrado de Funciones
Para quitar una funcin de la parte del servidor, utilizando SQL*Plus, ejecutar el
Sintaxis:
III.
DESARROLLO
CREANDO UN FUNCION
EJEMPLO 01.
Por medio de una funcin, se desea obtener la suma de 2 nmeros.
Nota: Cada funcin debe devolver un valor del tipo especificado utilizando la sentencia
RETURN.
LLAMADAS A FUNCIONES
Desde un bloque annimo
BEGIN
DBMS_OUTPUT.PUT_LINE(' sUMA DE DOS VARIABLES: '||F_SUMA(15,1000));
END;
Desde una instruccin SQL
SELECT FIRST_NAME,SALARY,F_SUMA(SALARY,COMMISSION_PCT )AS "SALARIO TOTAL"
FROM EMPLOYEES;
Desde otro procedimiento, funcin y triggers
CREATE PROCEDURE proceso ... IS ...
BEGIN ...
/* llamada a la funcin obtener_salario */
w_sal :=F_SUMA (10,2000);
END;
Ejemplo3: Crear una funcin que retorne el nombre del departamento segn su cdigo
indicado
Ejercicio01
Desarrolle una funcin que permita calcular la edad de un cliente, del esquema OE.
Utilizar la funcin para calcular tu edad
Salida1
Salida2
Ejercicio02
Crear una funcin que permita obtener el precio de un producto segn ingresemos el
nombre del producto.
Ejercicio03
Crear una funcin que calcule la cantidad total de pedidos que realiz un cliente.
Invocar con una consulta sql
Ejercicio04
Crear una funcin para mostrar la cantidad de pedidos de un producto x
IV.
2- Crear una funcin que al ingresar el nombre del departamento nos retorne la cantidad
de empleados.
3.- Crear una funcin que regrese como valor el id_del empleado que tenga el salario ms
grande de un departamento dado.
4. Crear una funcin que regrese los das que han transcurrido desde una fecha dada hasta
la fecha de hoy.