sql >> Base de Datos >  >> RDS >> Oracle

Notación de llamada para subrutinas PL/SQL en Oracle Database

Dado que los pocos tutoriales anteriores trataban sobre las subrutinas PL/SQL, como las funciones PL/SQL y los procedimientos almacenados, se vuelve obligatorio hablar sobre sus notaciones de llamadas. El aprendizaje de los conceptos de las subrutinas PL/SQL no se considerará completo hasta que también aprendamos sus notaciones de llamada.

¿Qué es la notación de llamada para subrutinas PL/SQL?

Llamar a la notación es una forma de proporcionar valores a los parámetros de una subrutina como una función PL/SQL o un procedimiento almacenado.

Tipos de notaciones de llamadas para subrutinas

En Oracle PL/SQL hay 3 tipos de notaciones de llamadas. Estos son:

  1. Notación posicional
  2. Notación con nombre y
  3. Notación de llamadas mixtas

Anotaciones de llamadas posicionales

La notación posicional es la notación de llamada más común que puede ver en casi todos los lenguajes de programación de computadoras. En notación posicional tenemos que especificar el valor de cada parámetro formal de forma secuencial. Esto significa que debe proporcionar los valores de los parámetros formales en el mismo orden en que fueron declarados en el procedimiento o en la función.

En la notación posicional, el tipo de datos y la posición del parámetro real deben coincidir con el parámetro formal.

Lectura sugerida:parámetros reales frente a parámetros formales

Ejemplo:Notación posicional para llamar a subrutinas PL/SQL.

CREAR O REEMPLAZAR PROCEDIMIENTO emp_sal(dep_id NÚMERO, sal_raise NÚMERO) ISBEGIN   ACTUALIZAR empleados SET salario =salario * sal_raise WHERE departamento_id =dep_id; DBMS_OUTPUT.PUT_LINE ('salario actualizado con éxito');END; //pre> 

Este es el mismo ejemplo que hicimos en el Tutorial 42 de PL/SQL sobre cómo crear un procedimiento almacenado con parámetros, aunque con algunos cambios menores. Ahora, si usamos la notación de llamada posicional, entonces tenemos que proporcionar los valores a ambos parámetros del procedimiento anterior de la misma manera en que se declaran.

Llamada a procedimiento almacenado usando notación posicional en Oracle Database

EJECUTAR emp_sal(40,2);

En esta llamada de procedimiento simple, el valor 40 corresponde al parámetro formal dep_id y el valor 2 corresponde al parámetro sal_raise.

Anotaciones de llamadas con nombre

La notación de llamada con nombre le permite pasar valores a los parámetros formales usando sus nombres. Esto, a su vez, le permitirá asignar valores solo a los parámetros requeridos u obligatorios.

Esta notación de llamada es útil cuando tiene una subrutina con parámetros donde algunos de esos parámetros son obligatorios y otros son opcionales y desea pasar los valores solo a los obligatorios.

Operador de Asociación

Para asignar valores a los parámetros formales usando sus nombres usamos el operador de asociación. Es una combinación del signo igual a (=) y el signo mayor que (>). Escribimos el nombre del parámetro formal a la izquierda del operador y el valor que se quiere asignar a la derecha del operador.

Ejemplo de notación de llamada con nombre para llamar a subrutinas PL/SQL

CREAR O REEMPLAZAR FUNCIÓN add_num(var_1 NÚMERO, var_2 NÚMERO PREDETERMINADO 0, var_3 NÚMERO ) DEVOLVER NÚMERO ISBEGIN DEVOLVER var_1 + var_2 + var_3;FIN;/

La función anterior tiene 3 parámetros. Entre estos 3 parámetros, 2 son obligatorios y 1 es opcional con un valor predeterminado de 0.

Puede llamar a esta función usando notación posicional. Pero tiene una restricción que debe cumplir y es que debe proporcionar valores a todos los parámetros formales en el mismo orden en que se declaran y el tipo de datos de los parámetros formales y reales debe coincidir.

Entonces, si desea omitir el parámetro opcional y desea usar su valor predeterminado o simplemente olvidó el orden del parámetro en el que se declararon. Entonces será un poco difícil para usted llamar a la subrutina anterior usando notación posicional. En tal escenario, puede aprovechar la notación de llamadas con nombre. Esta notación de llamada le proporcionará la flexibilidad deseada para llamar a sus subrutinas.

Llamada a la función PL/SQL utilizando la notación de llamadas con nombre en la base de datos de Oracle

DECLARAR var_result NUMBER;COMENZAR var_result :=add_num(var_3 => 5, var_1 =>2); DBMS_OUTPUT.put_line('Resultado ->' || var_result);END;

He explicado la llamada a la Función PL/SQL en detalle en el Video Tutorial sobre este mismo tema en mi canal de YouTube.

Notación de llamadas mixtas para llamar a subrutinas PL/SQL

Como sugiere el nombre, en la notación de llamadas mixtas puede llamar a las subrutinas usando la combinación de notaciones de llamadas con nombre y posicionales. La notación de llamadas mixtas es muy útil cuando la lista de parámetros se define con todos los parámetros obligatorios primero y los opcionales a continuación.

Ejemplo de notación de llamadas mixtas para llamar a subrutinas PL/SQL

Aquí está el bloque anónimo en el que estamos llamando a la misma función add_num() que codificamos al hacer la notación de llamada con nombre.

DECLARAR var_result NUMBER;COMENZAR var_result :=add_num(var_1 => 10, 30 ,var_3 =>19); DBMS_OUTPUT.put_line('Resultado ->' || var_result);END;

Así es como usamos la notación de llamadas mixtas para llamar a las subrutinas PL/SQL.

Pruébelo usted mismo

Usando el conocimiento de los conceptos anteriores, intente resolver la siguiente pregunta:

Escriba una función PL/SQL con parámetros para intercambiar dos números y llame a esa función usando una notación de llamada mixta.

Puede compartir su código o la instantánea de su código conmigo en mis redes sociales [Twitter // Facebook].

Espero que hayas disfrutado leyendo. Asegúrate de darle me gusta y compartir este blog. Gracias y que tengas un gran día.