假设我有:
我可以通过创建 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
答案 0 :(得分:1)
没有标准的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输出(但是 - bug - 它没有正确格式化列名或列类型行。)
答案 1 :(得分:1)
为什么你不使用dbschema?
获取一个表的模式(不带-t参数显示所有数据库)
dbschema -d [DBName] -t [DBTable] > file.sql
获取一个存储过程的模式
dbschema -d [DBName] -f [SPName] > file.sql
答案 2 :(得分:0)
找到一个更简单的解决方案。将标题放在一个文件中header.txt
(它将包含一行“col_1|col_2|col_3
”)然后将头文件和输出文件组合运行:
cat header.txt my_table.txt > my_table_wth_head.txt