DB2 SQL脚本挂在shell脚本中,但在命令行中成功运行

时间:2013-06-18 18:42:10

标签: sql shell db2

我有一个DB2脚本首先删除然后创建一些表空间和函数。我可以在目标数据库的DB2命令行中成功运行SQL脚本。

我需要多次在shell脚本中执行此SQL脚本。它可以在第一次成功执行,然后在第二次/第三次挂起。执行SQL脚本的命令非常简单: db2连接到ktest4 db2 -v -f /tmp/sql/application_system/opmdb2_privilege_remove.sql.5342

我使用DB2 9.7.8和LINUX操作系统。当SQL脚本被挂起时,我仍然可以在目标数据库的DB2命令行中成功地手动运行SQL脚本。

有谁知道原因?感谢。

高晓阳

1 个答案:

答案 0 :(得分:0)

您确定DB2正在阻止吗?你在命令之间放了一个分号吗

db2 CONNECT TO ktest4 ; db2 -v -f /tmp/sql/application_system/opmdb2_privilege_remove.sql.5342

为了跟踪执行情况,我建议你输出一些输出,以便检测阻塞位置

date ; db2 -r /tmp/output.log CONNECT TO ktest4 ; db2 -r /tmp/output.log values current timestamp ; db2 -r /tmp/output.log -v -f /tmp/sql/application_system ; db2 -r /tmp/output.log values current timestamp ; db2 -r /tmp/output.log terminate

使用这样的命令,您将保存所有输出,然后您可以检查错误的位置。