2010-05-14 98 views
2

假如我有:Informix:如何使用dbaccess获取表内容和列名称?

  • 名为 “MY_DATABASE” Informix数据库
  • 一个名为 “MY_TABLE” 同列 “COL_1”, “COL_2” 和 “col_3” 表:

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

和invoki:可以通过创建一个my_table.sql脚本像提取表的内容在命令行NG 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 

回答

1

没有一个标准的Informix工具可以根据需要在输出的顶部放置列名。

程序SQLCMD(不是微软的新手 - 原来的,可从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

找到了更简单的解决方案。发生在一个文件中的头说header.txt(它将包含一行“col_1|col_2|col_3”),然后在头文件和输出文件运行结合起来:

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

为什么你不使用的dbschema?

为了得到一个表的架构(没有-t参数显示所有数据库)

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

为了得到一个架构的存储过程

dbschema -d [DBName] -f [SPName] > file.sql 
相关问题