Informix - cadenas en Store Procedure

 
Vista:

cadenas en Store Procedure

Publicado por david (1 intervención) el 25/09/2009 19:15:34
Hola que tal a todos.......

Pues mi duda( y que ya me tiene un poco loco) es la siguiente ..

Desde hace unos dias he tratado de hacer lo siguiente .....
quiro ejecutar un store procedure que reciva como parametro una cadena, es decir, desde una aplicacion el usuario puede elegir varios estados, el cual toma las claves de dichos estados por ejemplo cadena= '01,02,05', esta cadena que se forma la mando al store procedure el cual internamente quieo que ejecute una consulta como la siguiente

create procedure sp_cadena(cadena char(100))
define west char(100);
foreach select d_estado into west from cat_estados where c_estado in(cadena)
return west
with resume
end foreach;
end procedure;

bueno algo asi, el problema es el siguiente, la cadena llega al store como cadena = '01,02,05' lo cual al meterlo en la consulta es incorrecto ya que no toma nada ya que la cadena debe de estar como cadena = '01','02','05', para esto emplee una instruccion para que la cadena quede de esa manera la cual es::

let cad='(replace(cadena,",","','"))';
de esta forma cad = '01','02','05' y queda de la manera correcta, pero al meterla en la consulta dentro del store, no me trae nada de datos,siendo que si la ejecutamos fuera del store si me trae los datos correspondientes, entonces no se a que se deba esta situacion que fuera de un store si funcione bien pero dentro no hace nada, como que no reconoce la cadena aunque tenga bien el formato y la manera de implementarla segun yo....

bueno estimados pues espero me puedan echar una manita coneste asunto ya que es algo confuso o no se como se hace o no se que esta pasandoo no se que estoy haciendo mal......

gracias por su interes y respuesta ......
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

cadenas en Store Procedure

Publicado por cmsystems.jimdo.com (1 intervención) el 09/10/2012 21:42:56
Si es para informix tienes que usar un returning:

create procedure sp_cadena(cadena char(100)) returning char(100);
define west char(100);
foreach select d_estado into west from cat_estados where c_estado in(cadena)
return west
with resume
end foreach;
end procedure;

atte: CMsystems-Perú
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