Informix: Как получить содержимое таблицы и имена столбцов, используя dbaccess? - PullRequest
2 голосов
/ 14 мая 2010

Предположим, у меня есть:

  • база данных Informix с именем "my_database"
  • таблица с именем «my_table» со столбцами «col_1», «col_2» и «col_3»:

Я могу извлечь содержимое таблицы, создав скрипт my_table.sql , например:

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

и вызов dbaccess из командной строки:

dbaccess my_database my_table.sql

В результате будет получен файл my_table.txt с содержимым, например:

value_a1|value_a2|value_a3
value_b1|value_b2|value_b3

Теперь, что мне делать, если я хочу получить имена столбцов в my_table.txt ? Как:

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

Ответы [ 3 ]

1 голос
/ 26 июля 2017

Почему вы не используете дбщему?

Чтобы получить схему одной таблицы (без параметра -t показать всю базу данных)

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

Чтобы получить схему одной хранимой процедуры

dbschema -d [DBName] -f [SPName] > file.sql
1 голос
/ 14 мая 2010

Ни один из стандартных инструментов Informix не ставит имена столбцов в верхнюю часть вывода, как вы хотите.

Программа SQLCMD (не новичок Microsoft - оригинал, доступный из IIUG Software Archive ) имеет возможность сделать это; используйте параметр -H для заголовков столбцов (и -T для получения типов столбцов).

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 также может выводить CSV, если это то, что вам нужно (но - ошибка - он неправильно форматирует имена столбцов или строки типов столбцов).

0 голосов
/ 12 июня 2013

Нашли более простое решение. Поместите заголовки в один файл, скажем header.txt (он будет содержать одну строку "col_1|col_2|col_3"), а затем объедините файл заголовка и ваш выходной файл:

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