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.
al ejecutar ese codigo solo me manda esto
ResponderEliminarPL/SQL procedure successfully completed.
no me manda el resultado
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ó
ResponderEliminarcomo lo puedo mandar a llamar desde php
ResponderEliminarcomo puedo llamar el procedimiento desde php
ResponderEliminaral ejecutar ese codigo solo me manda esto
ResponderEliminarPL/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!
al ejecutar ese codigo solo me manda esto
ResponderEliminarPL/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!
amigo te falta la siguiente line SET serveroutput ON
ResponderEliminartengo un procedimiento que retorna un varchar2 pero cuando resivo el parametro en c# el valor retornado no es completo lo recorta
ResponderEliminar