0

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

我需要在 shell 脚本中多次执行这个 SQL 脚本。第一次可以成功执行,第二次/第三次就会挂掉。执行SQL脚本的命令很简单:db2 CONNECT TO ktest4 db2 -v -f /tmp/sql/application_system/opmdb2_privilege_remove.sql.5342

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

有谁知道原因?谢谢。

高晓阳

4

1 回答 1

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

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

于 2013-06-19T13:12:18.707 回答