Informix: Как получить содержимое таблицы и имена столбцов, используя DBAccess?

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

  •  26-09-2019
  •  | 
  •  

Вопрос

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

  • База данных информации с именем "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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top