Como ejecutar una procedure de oracle

Necesito poder ejecutar una procedure de oracle desde delphi,
He conseguido crearla con create procedure pero ahora no se como ejecutarla
Pd. Me interesaría mucho poder ejecutarla desde el SQL Explorer que viene con delphi.

2 respuestas

Respuesta
1
¿No me queda claro lo que decís
necesitas ejecutar un procedure desde el entorno de delphi (del ide) o necesitas generar una aplicación que ejecute esos procedures?
Aclarame un poco más
Oracle puede ejecutar procedimientos almacenados llamados procedure y function, según el sql de oracle para poder crear una procedure basta con utilizar la sentencia create procedure, la cual genero a través del sql explorer que viene con delphi.
El problema es que una vez creada no se cual es o como se hace para poder ejecutar esa procedure la de oracle (no las de delphi) que debería realizar una serie de operaciones desde dentro del motor de oracle.
Entiendo,
para ejecutar un procedure desde oracle es similar a cualquier otro motor de base de datos, la sintaxis seria:
- EXEC nombre_procedure <PARAMETROS>
Cualquier duda avisame
Germán
Utilizando el sql explorer de delphi.
Utilizando Personal Oracle 8
Creo procedure en el sqlexplorer
CREATE PROCEDURE Grabando AS
Debe REAL;
Haber REAL;
SumaD REAL;
SumaH REAL;
BEGIN
SumaD:=0;
SumaH:=0;
SELECT Importe_P,Importe_S INTO Debe,Haber FROM Prueba1
WHERE Cuenta = '5700000000'
and Fecha>'01/01/2002'
and Fecha<'10/01/2002';
SumaD:=SumaD+Debe;
SumaH:=SumaH+Haber;
INSERT INTO Prueba2(Cuenta,Importe_Debe,Importe_Haber)
VALUES ('5700000000',SumaD,SumaH);
END Grabando;
Perfecto oK, Sin problemas,creada.
Despues ejecuto la sentencia que me indicaste Exec nombre_procedure <PARAMETROS>
Como puedes ver no hay parámetros, así pues lanzo la siguiente orden desde el sqlexplorer de delphi.
Exec grabando
Y me lanza el siguiente error.
General SQL Error.
ORA-00900: sentencia SQL no válida
Alguna solución.
La sentencia:
EXEC GRABANDO;
o
EXECUTE GRABANDO;
Debería funcionar
Bueno me he revisado todo el quick reference del sql oracle, y no veo por ninguna parte los comandos
exec o execute, estos comandos si existen en interbase pero en oracle no.
Perdona no quisiera ser grosero pero si no eres experto en oracle y delphi quizás y digo quizás no me puedas ayudar.
Gracias de todos modos.
http://www.eltutorial.com/docs/oracle/oracle00.zip
Respuesta
1
Begin
nom_procedure(param1,...);
end;
begin
execute nom_procedure(param1,...);
end;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas