Procedimientos PL/SQL


  • PROCEDIMIENTOS:

Los procedimientos PL/SQL son muy parecidos a otros procedimientos en otros lenguajes de programación.

Ejemplo de inserción de un registro compuesto por un número entero dado y una cadena, (i, ‘xxx’):

Un procedimiento se indica mediante las palabras clave CREATE PROCEDURE seguido del nombre y sus parámetros. Opcinal es continuarlo de CREATE seguido de OR REPLACE. Esto permitirá crear o reemplazar el procedimiento, si existe previamente, sin advertencias.

Puede haber un número ilimitado de parámetros, seguidos de un modo y un tipo. Los modos posibles son:

  • IN: Solo lectura.
  • OUT: Solo escritura.
  • INOUT: Lectura y escritura.

NOTA: A diferencia del tipo especificado en la declaración de una variable PL/SQL, el tipo especificado en la declaración de un parámetro, NO puede tener restricciones. Por ejemplo, VARCHAR(10) o CHAR(2) NO son válidos; deberían usarse los tipos CHAR o VARCHAR en su lugar. La longitud depende del parámetro que se pase cuando el procedimiento es invocado.

A continuación de los argumentos, se debe usar la palabra clave AS (IS es un sinónimo). A continuación va el cuerpo, esencial en un bloque PL/SQL. Hemos repetido al final el nombre del procedimiento tras el END, pero esto es opcional.

La sección de declaración, NO debe empezar con la palabra clave DECLARE. En su lugar, usamos AS.

El “run;” tras un procedimiento, no lo ejecuta, sino que tan sólo ejecuta la sentencia que crea el procedimiento. Para ejecutar el procedimiento hay que usar otra sentencia PL/SQL, en la que el procedimiento es invocado como una sentencia de ejecución.

Ejemplo 1:

Ejemplo 2: Con parámetro OUT.

NOTA: Cuando usemos OUT o INOUT, no se puede usar una constante, ya que su valor cambiará.
  • FUNCIONES:

También podemos crear Funciones en lugar de Procedimientos. En su declaración y tras los parámetros pondremos RETURN y el tipo de valor que retornará:

En el cuerpo de la función debe existir un valor de retorno, con la siguiente sintaxis:

  • CONSULTAS SOBRE PROCEDIMIENTOS Y FUNCIONES:

Para encontrar qué procedimientos y funciones hemos creado, usamos la siguiente query de SQL:

Para eliminar un procedimiento/función almacenados: