Informix: Как получить содержимое таблицы и имена столбцов, используя DBAccess?
Вопрос
Предположим, у меня есть:
- База данных информации с именем "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
Решение
Ни один из стандартных инструментов Informix не помещает имена столбцов в верхней части вывода, как вы хотите.
Программа SQLCMD (не новичок Microsoft - оригинальный, доступный из Архив программного обеспечения IIUG) имеет возможность сделать это; использовать -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, если это то, что вам нужно (но - ошибка - это не форматирует имена столбцов или правильно типы столбцов).
Другие советы
Почему вы не используете DBSchema?
Чтобы получить схему одной таблицы (без -t Parameter Показать всю базу данных)
dbschema -d [DBName] -t [DBTable] > file.sql
Чтобы получить схему одной хранимой процедуры
dbschema -d [DBName] -f [SPName] > file.sql
Нашел более легкое решение. Поместите заголовки в один файл сказать header.txt
(он будет содержать одну строку »col_1|col_2|col_3
«) Затем, чтобы объединить файл заголовка и запустить файл вывода:
cat header.txt my_table.txt > my_table_wth_head.txt