我创建了一个 shell 脚本,它将创建一个包含 db2 表创建过程的字符串。如示例所示: string =“db2”创建表foo(.........“”
现在我的脚本将连接到数据库并输入转换为将创建表的 db2 的字符串。在 shell 输入字符串之前,我在 db2 上启用了命令
在 test-database.txt 上使用 z 更新 db2 命令选项 这样我想将所有输出保存在文本文件中 但是,我的问题是我希望该字符串显示在 db2 创建的输出文件中,就像您在 db2 中输入来创建表一样,但从不显示在输出文件中。它会在 test-database.txt 中显示表是否成功创建的结果,例如
SQL 命令成功完成。
有没有办法让输出文件显示表的创建? 。提前致谢
最佳答案
您正在谈论 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)
最后,你只需要处理VAR的内容,通过awk、sed、grep等即可。
了解更多信息:http://pic.dhe.ibm.com/infocenter/db2luw/v10r5/topic/com.ibm.db2.luw.admin.cmd.doc/doc/r0010410.html
关于mysql - 从 db2 制作输出文件显示从 shell 脚本创建表的过程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19829935/