从db2生成输出文件显示shell脚本中的表创建过程?

时间:2013-11-07 07:08:14

标签: mysql sql database shell db2

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

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

在test-database.txt上使用z的db2 update命令选项 所以我想保存textfile上的所有输出  但是,我的问题是我希望将该字符串显示在db2创建的输出文件中,就像在db2中键入以创建表一样,但从未在输出文件中显示。它将显示在test-database.txt中是否成功创建表的结果,例如

SQL命令成功完成。

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

1 个答案:

答案 0 :(得分: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