我创建了一个shell脚本,它将创建一个包含db2表创建过程的字符串。如例: string =“db2”CREATE TABLE foo(.........“”
现在我的脚本将连接到数据库并输入转换为db2的字符串,该字符串将创建一个表。在shell输入字符串之前,我在db2上启用了命令
在test-database.txt上使用z的db2 update命令选项 所以我想保存textfile上的所有输出 但是,我的问题是我希望将该字符串显示在db2创建的输出文件中,就像在db2中键入以创建表一样,但从未在输出文件中显示。它将显示在test-database.txt中是否成功创建表的结果,例如
SQL命令成功完成。
有没有办法让输出文件显示表的创建? 。提前致谢
答案 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