Power Builder - llamar procedure de oracle

 
Vista:

llamar procedure de oracle

Publicado por Andrea (4 intervenciones) el 30/11/2005 00:30:36
hola tengo el siguiente procedure oracle

CREATE OR REPLACE PROCEDURE SP_VENTAS_OBT_PROV(as_departamento char,
as_provincia char, as_desprovincia out varchar2)
IS
l_cd_provincia varchar2(35);
Begin
SELECT P.cd_provincia
INTO l_cd_provincia
FROM TPROVINCIA P
WHERE P.cc_departamento = as_departamento and
P.cc_provincia = as_provincia;
End ;

El cual lo llamo en el evento itemchanged del datawindows

El trozo de codigo es el siguiente

string ls_desprovincia,ls_departamento
DECLARE PROC_DESPROVINCIA PROCEDURE FOR SP_VENTAS_OBT_PROV
( as_departamento => :ls_departamento,
as_provincia => :data)
using sqlca;

EXECUTE PROC_DESPROVINCIA;
FETCH PROC_DESPROVINCIA INTO :ls_desprovincia;
Close PROC_DESPROVINCIA;

This.object.t_provincia.text=ls_desprovincia

El valor que retorna en la variable ls_desprovincia es null, y no se que puede ser si en el debug, los parametros (ls_departamento, y data ) tienen los valores correctos, pero sin embargo la variable ls_desprovincia me devulve null.
Por favor ayudenme ya que utilizo el oracle, antes esto era tan sencillo con el
sql server, pero con oracle se me complico, utilizo power 9 y oracle 10
gracias , de antemano
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:llamar procedure de oracle

Publicado por Jancarlo (890 intervenciones) el 30/11/2005 02:32:50
Entonces el problema no esta en PB sino en el mismo procedure.

Modifique tu procedure para ver que si arroja algun error, reemplazalo por este:

CREATE OR REPLACE PROCEDURE SP_VENTAS_OBT_PROV(as_departamento char,
as_provincia char, as_desprovincia out varchar2)
IS
l_cd_provincia varchar2(35);
Begin
Begin
SELECT P.cd_provincia
INTO l_cd_provincia
FROM TPROVINCIA P
WHERE P.cc_departamento = as_departamento and
P.cc_provincia = as_provincia;
exception
when no_data_found then
as_desprovincia:='vacio';
when others then
as_desprovincia:=sqlerrm(sqlcode);
End ;

Ahora vuelve a hacer un debuger para ver que valor retorna

Suerte !
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:llamar procedure de oracle

Publicado por Andrea (4 intervenciones) el 30/11/2005 16:43:03
Gracias al parecer faltaba la asignacion as_desprovincia:=l_cd_provincia;


CREATE OR REPLACE PROCEDURE scott.SP_VENTAS_OBT_PROV(as_departamento char,
as_provincia char, as_desprovincia out varchar2)
IS
l_cd_provincia varchar2(35);
Begin
SELECT P.cd_provincia
INTO l_cd_provincia
FROM TPROVINCIA P
WHERE P.cc_departamento = as_departamento and
P.cc_provincia = as_provincia;
as_desprovincia:=l_cd_provincia;
End ;

Andrea
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar