Informix - bajada a un TXT

 
Vista:

bajada a un TXT

Publicado por Mariano M (3 intervenciones) el 14/09/2007 19:41:10
La duda es la siguiente:
Crear un archivo .txt en INFORMIX-SQL Version 5.07.UC2

Que comando puedo usar para escribir los registros de un INSERT de una tabla determinada?
Lo manejo con un trigger para capturar el evento del INSERT
Como hago para escribir en el filesystem un archivo de texto con algunos campos de la tabla.
La idea sería la siguiente:

CREATE TRIGGER after_TABLA_EMPLOYEE
INSERT ON TABLA_EMPLOYEE REFERENCING NEW as new
FOR EACH ROW
(

acá necesito escribir en un archivo de texto que registre algunos datos del nuevo registro a insertar
(new.id,new.lastName,new.fistName)

);

Tendrían alguna punta para darme?
Muchas gracias.
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:bajada a un TXT

Publicado por Luis Rivaldo (126 intervenciones) el 14/09/2007 19:58:05
Puedes usar:

1. Una funcion de reporte cuya salida sea archivo.

2. Esperar llenar la informacion en la tabla y al final
bajarlo con :
unload to nombre_tabla.txt
select * from tabla
where condicion1 = algo1

Puede haber mas opciones pero estas pueden servir.
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:bajada a un TXT

Publicado por Mariano M (3 intervenciones) el 14/09/2007 20:17:04
Lo que necesito es que a medida que se vayan insertando registros se vayan almacenando a nivel filesystem archivos de texto, para que otra aplicación que está consultando continuamente el directorio en donde quedarán los archivos los tome y los replique en otro lado:

Podría hacer lo siguiente?:

char fname[25] = 'hhmmssmmddyyyy.txt';

unload to fname
select (aca puedo poner: new.id,new.lastname,etc???) from tabla
where condicion1 = algo1

O SEA PUEDO HACER UN SELECT DE LOS CAMPOS A INSERTAR O DEBO PRIMERO CARGARLOS EN LA TABLA Y DESP CONSULTARLOS PARA PODER HACER EL UNLOAD?

MUCHAS GRACIAS!
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:bajada a un TXT

Publicado por Luis Rivaldo (126 intervenciones) el 15/09/2007 13:24:49
Te recomiendo que primero llenes los registros en la tabla por varias razones.

1. Si el numero de registros que se va a manipular o leer son muchos Ejemplo
N regitros donde N puede ser 5000 o mas como tu lo piensas significa que estarias
creando 5000 archivos uno por cada registro. En este caso esto es muy ineficiente y los
tiempos de respuesta harían que el proceso sea un poco mas demorado.

2. Siempre es mejor almacenar la información en una tabla que puede ser temporal o fija
o una vista y después vaciarla a un archivo plano o reporte. aquí los rendimientos son
mucho mejor independiente del numero de registros.

3. Si quieres hacer un archivo por cada registro debes hacer una rutina que te arroje un
nombre de archivo diferente por cada registro Ejemplo:

FDefine_Nombre_Archivo ( Variable_Contador, algo1 )
Define
Variable_Contador integer,
Nombre_Archivo char(25),
algo1 debe ser del tipo registro o campo que estas comporando
para hallar cada registro en la tabla.

let Nombre_Archivo= "Nombre_Archivo_Numero_", Variable_Contador using "-----&"

unload to Nombre_Archivo
select * from nombre_tabla
where condicion1 = algo1

end function

Hay mas cosas pero estoy de salida
bye.
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