Frage

Angenommen, ich habe:

  • eine Informix-Datenbank mit dem Namen "meine_datenbank"
  • eine Tabelle "my_table" mit den Spalten "col_1", "col_2" und "col_3" genannt:

kann ich den Inhalt der Tabelle extrahiert, indem ein Erstellen my_table.sql Skript wie:

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

und dbaccess von der Kommandozeile aufrufen:

dbaccess my_database my_table.sql

Dies wird produziert die my_table.txt Datei mit Inhalten wie:

value_a1|value_a2|value_a3
value_b1|value_b2|value_b3

Nun, was muss ich tun, wenn ich die Spaltennamen in der my_table.txt erhalten wollen? Wie:

col_1|col_2|col_3
value_a1|value_a2|value_a3
value_b1|value_b2|value_b3
War es hilfreich?

Lösung

Keine der Standard Informix-Tool stellt die Spaltennamen an der Spitze der Ausgabe, wie Sie wollen.

Das Programm SQLCMD (nicht der Microsoft Neuling - das Original, das von dem IIUG Software-Archiv ) hat die Fähigkeit, das zu tun; Verwenden Sie die -H Option für die Spaltenüberschriften (und -T die Spaltentypen zu bekommen).

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 können auch CSV-Ausgabe tun, wenn das ist, was Sie brauchen (aber - Fehler - es nicht formatiert werden die Spaltennamen oder Spaltentypen Linien korrekt).

Andere Tipps

Warum Sie verwenden dbschema nicht?

Um Schema einer Tabelle zu erhalten (ohne Parameter -t alle Datenbank zeigen)

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

Um das Schema eines gespeicherten Prozedur erhalten

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

Gefunden eine einfachere Lösung. Legen Sie die Header in einer Datei sagen header.txt (es wird nur eine einzige Zeile „col_1|col_2|col_3“ enthalten), dann zu kombinieren, um die Header-Datei und die Ausgabedatei Lauf:

cat header.txt my_table.txt > my_table_wth_head.txt
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top