Informix - Error en Informix-4gl

 
Vista:

Error en Informix-4gl

Publicado por Mory (10 intervenciones) el 12/10/2004 18:25:50
Chicos, tengo el siguiente còdigo:

DATABASE desarrollo
MAIN
DEFINE myOrigen varchar(50)
DEFINE myDestino varchar(50)
DEFINE p_tablas RECORD LIKE ct_tablas.*
DECLARE c_tablas CURSOR FOR
SELECT * FROM ct_tablas WHERE nombre_destino MATCHES 'LK_ESS_ESTACIONSERVICIO'
FOREACH c_tablas INTO p_tablas.*
LET myDestino = "'",p_tablas.nombre_destino CLIPPED,"'"
LET myOrigen = p_tablas.nombre_origen CLIPPED
DISPLAY myDestino
DISPLAY myOrigen
UNLOAD TO myDestino DELIMITER '¬'
SELECT * FROM myOrigen
END FOREACH
END MAIN

Mi archivo de salida està en una tabla (puesto en el unload) y el de origen (puesto en el select) està en otra. La compilaciòn està correcta, pero la ejecuciòn me da el siguiente error:

Program stopped at "LKS_ESS.4gl", line number 12.
SQL statement error number -206.
The specified table (myorigen) is not in the database.
SYSTEM error number -111.
ISAM error: no record found.

ESTOY VARIOS DIAS TRATANDO DE RESOLVER ESTA ESTUPIDEZ, NECESITO AYUDA URGENTE
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:Error en Informix-4gl

Publicado por Juan Carlos (5 intervenciones) el 14/10/2004 08:16:48
La tabla myorigen no esta creada fisicamente en la base de datos (desarrollo), tenes que crearla.
Saludos.
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:Error en Informix-4gl

Publicado por eeedu (7 intervenciones) el 21/10/2004 20:32:17
Creo que la select no admite una variable como nombre de la tabla. Creo que tiene que un nombre de tabla explícito.
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:Error en Informix-4gl

Publicado por Luis (1 intervención) el 15/08/2007 23:25:58
Bueno, aunque esto este retrasado 3 años !!! igual te doy la solución :P
Quien sabe algun dia vuelvas a verlo jeje

Esta bien tu código hasta la parte que inicia el Unload, sería asi :

LET cadena = "UNLOAD TO ",myDestino," DELIMITER '¬' SELECT * FROM ",myOrigen

PREPARE stc_cre FROM cadena
EXECUTE stc_cre
FREE stc_cre

y listo, la cuestión es que no se puede incluir en el select una variable, por eso hay que hacer una cadena y ejecutarla.

( END FOREACH
END MAIN )
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