miércoles, 3 de agosto de 2011

FUNCIONES

Las funciones tiene una estructura y una funcionalidad similar a los procedimientos pero, a diferencia de aquellos, éstas devuelven un valor:


FUNCTION<nombrefuncion>
                   ([<lista de parametros>])

RETURN <expresión>
IS
        <declaraciones>;
BEGIN
<instrucciones>;
RETURN<expresion>;
...
EXCEPTION
      <excepciones>;
END<nombrefuncion>;

Los parametros tienen a misma sintaxis en las funciones que en los procedimientos, y es valido todo lo indicado para ellos.
La clausula RETURN de la cabecera especifica el tipo del valor que retorna la función. En el cuerpo del programa se hara efectivo ese retorno utilizando dicha clausula RETURN junto a la expresion cuyo valor se devolvera.

Para crear o modificar una funcion utilizaremos el comando CREATE OR REPLACE FUNCTION:
CREATE OR REPLACE FUNCTION Encontrar_num_empleado(
v_apellido varchar)
RETURN REAL
AS
N_empleado emple.emp_no%TYPE;
BEGIN
SELECT emp_no INTO N_empleado FROM emple
WHERE apellido= v_apellido;
RETURN N_empleado;
END Encontrar_num_empleado;

El formato de llamada a una funcion consiste en utilizar como parte de una expresion:
<variable>:= <nombrefuncion>(parametros);
Se puede invocar funciones en comandos PL/SQL, pero para hacerlo desde SQL se tienen que cumplir ciertas restricciones.
BEGIN DBMS_OUTPUT.PUT_LINE(Encontrar_num_empleado('Muñoz'));
/
7934
procedimiento PL/SQL terminado con exito.

Una funcion puede tener varios RETURN:
.....
IF nota<5 THEN
      RETURN 'SUSPENSO';
ELSE
      RETURN 'APROBADO';
END IF;
.......

No hay comentarios:

Publicar un comentario