Crear procedimiento almacenado Oracle

lunes, 13 de diciembre de 2010

Hoy vamos a ver cómo crear un procedimiento almacenado en Oracle, uno de los sistemas gestores de base de datos más completos del mercado. Antes de nada, comenzaremos con la sintaxis de un procedimiento almacenado de Oracle:


CREATE [OR REPLACE] PROCEDURE nombre_procedimiento ([parametros])

IS

[zona de declaraciones]

BEGIN

[zona de ejecución]

EXCEPTION

[zona de excepciones]

END nombre_procedimiento;

Como podéis ver, el procedimiento está dividido en diferentes secciones:
  • Parámetros: a la hora de crear un procedimiento almacenado de Oracle, podemos declarar parámetros de diferentes tipos (NUMBER, VARCHAR, etc) y estos pueden ser de entrada (IN), salida (OUT) o incluso de entrada y salida (INOUT).
    • IN: Se utiliza como un parámetro de entrada para el procedimiento almacenado. No se puede cambiar la información de este parámetro dentro del procedimiento.
    • OUT: Se utiliza como parámetro de salida en el procedimiento almacenado. Se puede cambiar la información de este parámetro dentro del procedimiento.
    • INOUT: Se utiliza como parámetro de entrada y de salida. Se puede cambiar la información de este parámetro dentro del procedimiento.
  • Zona de declaraciones: utilizaremos esta sección del procedimiento para declarar las variables que necesitemos utilizar en el procedimiento.
  • Zona de ejecución: en esta sección va la lógica del procedimiento, es decir, la parte de la aplicación que se ejecutará.
  • Zona de excepciones: se utiliza para el tratamiento de excepciones del procedimiento.

Una vez explicada la sintaxis, veremos un ejemplo muy sencillo:


CREATE OR REPLACE PROCEDURE SUMA_NUMEROS (primer_numero IN NUMBER, segundo_numero IN NUMBER, resultado OUT NUMBER)

IS

BEGIN

resultado:=primer_numero+segundo_numero;

END;

En este procedimiento almacenado, simplemente le daremos 2 números (primer_numero y segundo_numero), realizamos una suma y devolvemos el resultado. Destacar que primer_numero y segundo_numero son parámetros de entrada (IN) y que resultado es un parámetro de salida (OUT).

Para poder llamar a este procedimiento y probarlo, podemos hacer lo siguiente:


DECLARE

resultado int;

BEGIN

SUMA_NUMEROS(20,30,resultado);

dbms_output.put_line('Resultado de la suma: ' || resultado);

END;

En esta llamada, le indicamos que queremos sumar los números 20 y 30. Por ello, ejecutando estas últimas líneas podremos ver por el "output" el siguiente texto: "El resultado de la suma: 50".

Esperamos que con este sencillo ejemplo haya quedado claro cómo crear un procedimiento almacenado en Oracle.

Artículos relacionados


Comments

8 Responses to “ Crear procedimiento almacenado Oracle ”
Post a Comment | Enviar comentarios ( Atom )

Anónimo dijo...

al ejecutar ese codigo solo me manda esto
PL/SQL procedure successfully completed.
no me manda el resultado

4 de noviembre de 2012, 0:03
Unknown dijo...

Yo uso TOAD, y en el TOAD tenes que irte a la pestaña DBMS Output y pones en verde el botón TURN OUTPUT y en POLLING FREQUENCY(SECONDS) le pones 1 y listo, a mi me funcionó

3 de enero de 2013, 18:39
cangri dijo...

como lo puedo mandar a llamar desde php

14 de febrero de 2013, 17:17
cangri dijo...

como puedo llamar el procedimiento desde php

14 de febrero de 2013, 17:17
Unknown dijo...

al ejecutar ese codigo solo me manda esto
PL/SQL procedure successfully completed.
no me manda el resultado


te sale eso una vez..creado el procedimiento..una vez creado le tienes que llamar..que es la siguiente linea de codigo que te indican..
saludos!

31 de mayo de 2013, 8:38
Unknown dijo...

al ejecutar ese codigo solo me manda esto
PL/SQL procedure successfully completed.
no me manda el resultado


te sale eso una vez..creado el procedimiento..una vez creado le tienes que llamar..que es la siguiente linea de codigo que te indican..
saludos!

31 de mayo de 2013, 8:38
Anónimo dijo...

amigo te falta la siguiente line SET serveroutput ON

14 de noviembre de 2013, 21:48
prueba dijo...

tengo un procedimiento que retorna un varchar2 pero cuando resivo el parametro en c# el valor retornado no es completo lo recorta

22 de abril de 2016, 17:34

Publicar un comentario

Deja tu opinión realizando un comentario interesante. Cualquier intento de Spam no será admitido.