Para cualquiera que haya estudiado lenguajes de programación como C, C++ o Java, el concepto de funciones no es nuevo. Las funciones no son más que un grupo de sentencias ejecutables. Al usar Funciones, puede evitar tener que volver a escribir la misma lógica de programación una y otra vez. Entonces, ¿cómo podemos definir una función en Oracle PL/SQL?
¿Qué son las funciones PL/SQL en Oracle Database?
En Oracle Database podemos definir una función PL/SQL como un subprograma autónomo que está destinado a realizar una tarea específica bien definida. Las funciones se denominan bloque PL/SQL, lo que significa que se pueden almacenar en la base de datos como un objeto de la base de datos y se pueden reutilizar. Esa es también la razón por la que algunos libros se refieren a las funciones PL/SQL como funciones almacenadas.
Tipos de funciones PL/SQL en Oracle Database
Hay dos tipos de funciones PL/SQL en Oracle Database, estas son
- Funciones de paso por valor y
- Funciones de paso por referencia
En Oracle Database, ambos tipos de funciones deberían tener que devolver algunos valores y estos valores deberían ser un tipo de datos SQL o PL/SQL válido.
Sintaxis de funciones PL/SQL en Oracle Database
CREATE [OR REPLACE] FUNCTION function_name (Parameter 1, Parameter 2…) RETURN datatype IS Declare variable, constant etc. BEGIN Executable Statements Return (Return Value); END;
He discutido la sintaxis de la función PL/SQL línea por línea en el video tutorial en mi canal de YouTube sobre el mismo tema. Te sugiero que vayas y veas ese tutorial una vez.
Método de ejecución de funciones
Dependiendo de su creatividad y habilidades de programación, una función PL/SQL puede llamarse de varias maneras. Estas son algunas formas generales de llamar a una función PL/SQL en Oracle Database
- Puede usar la utilidad SQL*Plus de Oracle Database para invocar una función PL/SQL que se puede llamar desde PL/SQL como declaración de procedimiento.
- También se puede usar un bloque PL/SQL anónimo para llamar a una función.
- Incluso puede llamar a una función directamente en una declaración SELECT o DML.
Estén atentos, discutiremos cada uno de estos métodos de ejecución de funciones PL/SQL en el próximo tutorial.
Restricciones para llamar a una función
- Una función que devuelve el tipo de datos SQL se puede usar dentro de la instrucción SQL y una función PL/SQL que devuelve el tipo de datos PL/SQL solo funciona dentro de los bloques PL/SQL. Una excepción a esta regla es que no puede llamar a una función que contiene una operación DML dentro de una consulta SQL. Sin embargo, puede llamar a una función que realiza una operación DML dentro de INSERTAR, ACTUALIZAR y ELIMINAR.
- Una función llamada desde una instrucción UPDATE o DELETE en una tabla no puede consultar (SELECCIONAR) ni realizar transacciones (DML) en la misma tabla.
- Una función llamada desde expresiones SQL no puede contener el comando TCL (COMMIT o ROLLBACK) o el comando DDL (CREATE o ALTER)
Eso es todo por este tutorial sobre Introducción a las funciones PL/SQL en Oracle Database. Asegúrese de revisar el próximo tutorial donde demuestro la creación de la función PL/SQL usando un ejemplo muy simple.
También asegúrese de compartir este blog en sus redes sociales, ya que estoy regalando la mercancía de RebellionRider a uno de los ganadores seleccionados al azar cada mes. Para más actualizaciones sígueme en mi Facebook y Twitter.
¡Gracias por leer y que tengas un gran día!