Problema com stored procedure

Oracle

18/02/2004

Criei a seguinte procedure no oracle 9i - usando PLSQL

CREATE OR REPLACE PROCEDURE inc_competencia
(p_comp_descr IN competencia.comp_descr¬TYPE,
p_comp_codigo OUT competencia.comp_codigo¬TYPE)
IS
BEGIN
INSERT INTO competencia (comp_codigo,comp_descr)
VALUES (comp_codigo_seq.NEXTVAL, p_comp_descr);
SELECT comp_codigo_seq.CURRVAL INTO p_comp_codigo FROM DUAL ;
COMMIT;
EXCEPTION
WHEN OTHERS THEN
p_comp_codigo := 100; --somente um teste
ROLLBACK;
END inc_competencia;

----------------------

Quando executo a procedure no Sql*Plus funciona normalmente

----------------------

Quando vou executar no Delphi 7 - Usando DBExpress
(Não consigo gravar no banco. E o parametro de retorno no delphi
retorna 0.)
---------------------

Como esta no delphi 7

Coloquei um comoponente TSQLStoredProc

Alterei as propriedades StoredProcName para INC_COMPETENCIA
Params:
P_comp_codigo DataType ftInteger (Saida)
P_comp_descr DataType ftString (Entrada)

No Evento ONclick do Botao Gravar

SqlInc_Compet.Close;
SqlInc_Compet.ParamByName(´p_comp_descr´).Text := edit2.text (Qualquer valor string);
SqlInc_Compet.ExecProc;
Edit1.Text := SqlInc_Compet.ParamByName(´p_comp_codigo´).Text;
--------------------

Não retorna erro algum nem grava nada no banco oracle e
SqlInc_Compet.ParamByName(´p_comp_codigo´).Text retorna 0 (Zero).

Quando não coloco parâmetro de saída na stored procedure não dá erro e grava normalmente, porém eu preciso do tal parâmetro de saída.

Alguém já passou por uma situação como essa?

Desde já agradeço a colaboração.


Roa

Roa

Curtidas 0
POSTAR