0

我创建了一个 shell 脚本,它将创建一个字符串,其中包含为 db2 创建表的过程。如示例: string=" db2 "CREATE TABLE foo (......... ""

现在我的脚本将连接到数据库并输入转换为 db2 的字符串,这将创建一个表。在 shell 输入字符串之前,我在 db2 上启用了命令

db2 update command options using z on test-database.txt 以便我想将所有输出保存在文本文件中但是,我的问题是我想让该字符串显示在 db2 创建的输出文件中,就像您输入时一样db2 创建表,但在输出文件中从不显示。它会在 test-database.txt 中显示表是否成功创建的结果,例如

SQL 命令成功完成。

有没有办法让输出文件显示表的创建?. 提前致谢

4

1 回答 1

0

您正在谈论 db2clp 的选项,它有许多不同的选项。

如果我理解,您正在编写一个脚本(我认为是 bash 脚本)并且您想要检索命令输出。为此,您有两个选择

  • 将命令输出写入文件,然后读取该文件。
  • 将命令输出重定向到变量。

第一个选项是更简单的选项。此选项使用 z 选项,将整个输出写入文件。您可以通过打印出您想要的内容,然后将输出重定向到文件来更改此行为。

db2 -tf myfile.sql -z /tmp/output
VAR=$(cat /tmp/output)

第二个选项有点棘手,因为重定向意味着创建另一个 shell,然后您应该重新加载 db2 配置文件。这个选项使用了v选项,也就是标准输出,希望输出是你想要的。

VAR=$(. ~db2inst1/sqllib/db2profile ; db2 -tvf myfile.sql)

最后,您只需要通过 awk、sed、grep 等处理 VAR 的内容。

更多信息: http: //pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0010410.html

于 2013-11-07T09:35:22.490 回答