Saltar al contenido principal
Página

Tema 3.4 - Funciones

Una función es un subprograma que tiene nombre el cual ejecuta una o varias tareas especificadas y debe retornar un valor. Las funciones al igual que los procedimientos almacenados una vez que se crean se guardan en la BD para ser ejecutados repetidas veces.

Las funciones se pueden llamar desde:

  1. Columna de un SELECT.
  2. Condiciones en cláusulas WHERE y HAVING.
  3. Cláusula ORDER BY y GROUP BY.
  4. Cláusula VALUES de un comando INSERT.
  5. Cláusula SET de un comando UPDATE.

La sintaxis de las funciones es muy similar que la de los procedimientos almacenados y se muestra a continuación.

Donde:

  1. Los corchetes son partes del código que son opcionales.
  2. La cláusula REPLACE reemplaza la función si existe.
  3. nom_funcion es el nombre de la función.
  4. El bloque PL/SQL comienza con el BEGIN o con la declaración de variables locales (sin usar la palabra reservada DECLARE).
  5. La función puede tener 0, 1 o más parámetros.
  6. El tipo_datos hace referencia los tipos de datos básicos como NUMBER, VARCHAR2, entre otros.
  7. Se puede usar AS o IS (son equivalente).
  8. El modo especifica el tipo de parámetro de la siguiente manera:
    1. IN: Es un parámetro de sólo lectura.
    2. OUT: Es un parámetro de sólo escritura que se utiliza para devolver valores a otro subprograma.
    3. IN OUT: Estos parámetros son de lectura y escritura. El subprograma devolverá un valor posiblemente diferente al enviado inicialmente.

Al igual que en los procedimientos, los parámetros de las funciones después de definirles su tipo (IN, OUT, IN OUT), opcionalmente se les puede especificar un valor por defecto usando la cláusula DEFAULT, este valor será el que asuma la función al ser ejecutado o invocado y no recibir parámetros.

Para eliminar una función se hace de la siguiente manera.

Ejemplo 1:

Para este ejemplo vamos a crear una función sin parámetros que nos retornará el número total de los habitantes que hay en la tabla PAIS.

Se escribe el código de la función y lo ejecutamos.

Podemos ver en SQL DEVELOPER que la función total_hab se creó correctamente dentro de la base de datos.

Después, en un nuevo script ponemos el bloque PL/SQL para poder llamar a la función total_hab que nos devolverá el total de habitantes que hay en la tabla PAIS y ejecutamos el código para que nos muestre ese valor en pantalla.

Ejemplo 2:

Acá se va a mostrar la creación de una función con parámetros y para ejemplificar esto vamos a utilizar los datos de la tabla EMPLEADO.

La función se llamará encontrar_empleado que recibirá como argumento el código del empleado y retornará el nombre de esta persona.

Ejecutamos el bloque PL/SQL para que se cree la función.

Luego en otro script se llama a la función encontrar_empleado, le pasamos como parámetro el número 2 para que nos devuelva el nombre del empleado perteneciente a este código si se encontró, de lo contrario nos arroja un error NO DATA FOUND.

Al ejecutar el bloque PL/SQL nos muestra el nombre de la persona que tiene asociado el código 2.

Última modificación: lunes, 11 de mayo de 2020, 21:10