假如我有:

  • Informix database named"my_database"
  • 表名为"忽略大小"与列"col_1","col_2"和"col_3":

我可以提取内容的发表,通过创建一个 忽略大小.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参数显示所有的数据库)

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