我有一个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脚本。
有谁知道原因?感谢。
高晓阳答案 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
使用这样的命令,您将保存所有输出,然后您可以检查错误的位置。