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:
La sintaxis de las funciones es muy similar que la de los procedimientos almacenados y se muestra a continuación.

Donde:
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.
