2010-05-14 6 views
2

Supposant Je:Informix: Comment obtenir le contenu de la table et les noms de colonne en utilisant dbaccess?

  • une base de données Informix nommée "my_database"
  • une table nommée "my_table" avec les colonnes "col_1", "col_2" et "col_3":

I peut extraire le contenu de la table en créant un my_table.sql script comme:

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

et invoki ng dbaccess de la ligne de commande:

dbaccess my_database my_table.sql 

Cela produira le my_table.txt fichier avec des contenus tels que:

value_a1|value_a2|value_a3 
value_b1|value_b2|value_b3 

Maintenant, que dois-je faire si je veux obtenir la colonne les noms dans le my_table.txt? Comme:

col_1|col_2|col_3 
value_a1|value_a2|value_a3 
value_b1|value_b2|value_b3 

Répondre

1

Aucun des outils standard Informix mis les noms de colonnes en haut de la sortie que vous voulez.

Le programme SQLCMD (pas le nouveau venu Microsoft - l'original, disponible à partir du IIUG Software Archive) a la capacité de le faire; utilisez l'option -H pour les en-têtes de colonne (et -T pour obtenir les types de colonnes).

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 peut également faire sortie CSV si c'est ce dont vous avez besoin (mais - bug - il ne formate pas les noms de colonnes ou types de colonnes lignes correctement).

0

Trouvé une solution plus facile. Placez les en-têtes dans un fichier disent header.txt (il contiendra une seule ligne « col_1|col_2|col_3 ») puis de combiner le fichier d'en-tête et votre fichier de sortie run:

cat header.txt my_table.txt > my_table_wth_head.txt 
0

Pourquoi vous ne pas utiliser dbschema?

Pour obtenir le schéma d'une table (sans paramètre -t Tout afficher la base de données)

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

Pour obtenir le schéma d'une procédure stockée

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