Informix: Cómo obtener el contenido de tablas y columnas utilizando dbaccess?

StackOverflow https://stackoverflow.com/questions/2833288

  •  26-09-2019
  •  | 
  •  

Pregunta

Supongamos que tengo:

  • una base de datos Informix llamado "MY_DATABASE"
  • una tabla llamada "mi_tabla" con las columnas "col_1", "col_2" y "col_3":

Me puede extraer el contenido de la tabla mediante la creación de una my_table.sql script como:

unload to "my_table.txt"
select * from my_table;

e invocando dbaccess desde la línea de comandos:

dbaccess my_database my_table.sql

Esto producirá el archivo my_table.txt con contenidos como:

value_a1|value_a2|value_a3
value_b1|value_b2|value_b3

Ahora, ¿qué tengo que hacer si quiero obtener los nombres de las columnas en el my_table.txt ? Como:

col_1|col_2|col_3
value_a1|value_a2|value_a3
value_b1|value_b2|value_b3
¿Fue útil?

Solución

Ninguna de las herramientas estándar de Informix poner los nombres de las columnas en la parte superior de la salida como desee.

El SQLCMD programa (no el recién llegado Microsoft - la original, disponible en el IIUG archivo de software ) tiene la capacidad de hacer eso; utilizar la opción -H para los títulos de las columnas (y -T para obtener los tipos de columna).

sqlcmd -U -d my_database -t my_table -HT -o my_table.txt
sqlunload -d my_database -t my_table -HT -o my_table.txt

También puede hacer SQLCMD salida CSV si eso es lo que necesita (pero - error - que no formatea correctamente los nombres de columna o columnas tipos de líneas).

Otros consejos

¿Por qué no se utiliza dbschema?

Para obtener el esquema de una tabla (sin parámetro -t mostrar todos base de datos)

dbschema -d [DBName] -t [DBTable] > file.sql

Para obtener el esquema de un procedimiento almacenado

dbschema -d [DBName] -f [SPName] > file.sql

encontrado una solución más fácil. Coloque los encabezados en una header.txt digamos archivo (que contendrá una sola línea "col_1|col_2|col_3") a continuación, combinar el archivo de cabecera y de correr archivo de salida:

cat header.txt my_table.txt > my_table_wth_head.txt
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top