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

发布于 2024-09-01 21:47:29 字数 651 浏览 7 评论 0原文

假设我有:

  • 一个名为“my_database”的 Informix 数据库
  • 一个名为“my_table”的表,其中包含“col_1”、“col_2”和“col_3”列:

我可以通过创建 my_table.sql< 来提取表的内容/strong> 脚本如下:

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

Supposing I have:

  • an Informix database named "my_database"
  • a table named "my_table" with the columns "col_1", "col_2" and "col_3":

I can extract the contents of the table by creating a my_table.sql script like:

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

and invoking dbaccess from the command line:

dbaccess my_database my_table.sql

This will produce the my_table.txt file with contents like:

value_a1|value_a2|value_a3
value_b1|value_b2|value_b3

Now, what do I have to do if I want to obtain the column names in the my_table.txt? Like:

col_1|col_2|col_3
value_a1|value_a2|value_a3
value_b1|value_b2|value_b3

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

西瑶 2024-09-08 21:47:29

为什么不使用 dbschema?

获取一张表的架构(不带-t参数显示所有数据库)

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

获取一个存储过程的架构

dbschema -d [DBName] -f [SPName] > file.sql

Why you don't use dbschema?

To get schema of one table (without -t parameter show all database)

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

To get schema of one stored procedure

dbschema -d [DBName] -f [SPName] > file.sql
琴流音 2024-09-08 21:47:29

标准 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 - 它不能正确格式化列名称或列类型行)。

None of the standard Informix tools put the column names at the top of the output as you want.

The program SQLCMD (not the Microsoft newcomer - the original one, available from the IIUG Software Archive) has the ability to do that; use the -H option for the column headings (and -T to get the column types).

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 also can do CSV output if that's what you need (but — bug — it doesn't format the column names or column types lines correctly).

痴意少年 2024-09-08 21:47:29

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

cat header.txt my_table.txt > my_table_wth_head.txt

Found an easier solution. Place the headers in one file say header.txt (it will contain a single line "col_1|col_2|col_3") then to combine the header file and your output file run:

cat header.txt my_table.txt > my_table_wth_head.txt
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文