Informix: Come ottenere il contenuto della tabella e delle colonne utilizzando dbaccess?

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

  •  26-09-2019
  •  | 
  •  

Domanda

Supponendo che ho:

  • un database Informix denominato "my_database"
  • una tabella denominata "my_table" con le colonne "col_1", "col_2" e "col_3":

I può estrarre il contenuto della tabella con la creazione di un my_table.sql script come:

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

e invocando dbaccess dalla riga di comando:

dbaccess my_database my_table.sql

Ciò produrrà la my_table.txt file con contenuti come:

value_a1|value_a2|value_a3
value_b1|value_b2|value_b3

Ora, che cosa devo fare se voglio ottenere i nomi delle colonne nel my_table.txt ? Come:

col_1|col_2|col_3
value_a1|value_a2|value_a3
value_b1|value_b2|value_b3
È stato utile?

Soluzione

Nessuno degli strumenti standard Informix messo i nomi delle colonne in cima l'uscita come si desidera.

Il programma di SQLCMD (non il nuovo arrivato Microsoft - quello originale, disponibile presso il IIUG Software Archive ) ha la capacità di farlo; utilizzare l'opzione -H per le intestazioni delle colonne (e -T per ottenere i tipi di colonna).

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

SQLCMD anche può fare CSV di output, se questo è quello che vi serve (ma - bug - non formattare i nomi di colonna o di una colonna linee tipi correttamente).

Altri suggerimenti

Perché non si utilizza dbschema?

Per ottenere lo schema di una tabella (senza indicazione -t mostra tutti i database)

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

Per ottenere lo schema di una stored procedure

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

Trovato una soluzione più facile. Posizionare le intestazioni in un unico file diciamo header.txt (conterrà una sola riga "col_1|col_2|col_3"), poi unire il file di intestazione e la corsa del file di output:

cat header.txt my_table.txt > my_table_wth_head.txt
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top