我正在从事Db2 ATS工作。 这就是我尝试过的。在数据库d1上创建了一个过程p1。此过程将更新数据库d1上的表t1。从直接调用的过程p1开始,我可以更新表t1。 现在我在数据库d2上创建了一个表t2。从数据库d1我试图更新此表t2。这也很好。 从数据库d1我可以更新两个表t1& T2。
现在我尝试了同样的ATS工作。 我可以提交一个工作来调用程序p1来更新数据库d1上的表t1。工作正常并且工作正常。能够查看更新的记录。
尝试从d1提交作业,该作业将更新数据库d2上的表t2。 作业运行正常,没有任何错误。但该表未更新。
以下是我的程序&日志有人可以告诉我这里缺少的东西:
CREATE or REPLACE PROCEDURE D_JUMP12(IN text VARCHAR(32672))
p1:BEGIN
DECLARE jobno NUMBER;
execute IMMEDIATE TEXT;
COMMIT;
END p1
这是我调用程序的方式:
call DBMS_JOB.SUBMIT (?, 'CALL D_JUMP12(''UPDATE sample.reg.CABS SET FIRSTNAME = reg_f_fixed_char_repos(FIRSTNAME)'')',NULL);
这些是我的日志:
2015-03-17-18.37.10.360000+330 E110713390F554 LEVEL: Error
PID : 2460 TID : 444 PROC : db2fmp64.exe
INSTANCE: DB2 NODE : 000 DB : test1
APPID : *LOCAL.DB2.150317130717
HOSTNAME: MANGO-04
EDUID : 444
FUNCTION: DB2 UDB, Administrative Task Scheduler, AtsConnection::commit, probe:900
MESSAGE : ECF=0x82BA00E1=-2101739295
DATA #1 : String, 124 bytes
[IBM] [CLI驱动程序] [DB2 / NT64] SQL0903N COMMIT语句失败,事务回滚。原因代码:“2”。 SQLSTATE = 40504
2015-03-17-18.37.10.364000+330 I110713946F425 LEVEL: Error
PID : 2460 TID : 444 PROC : db2fmp64.exe
INSTANCE: DB2 NODE : 000 DB : test1
APPID : *LOCAL.DB2.150317130717
HOSTNAME: MANGO-04
EDUID : 444
FUNCTION: DB2 UDB, Administrative Task Scheduler, AtsTask::run, probe:1300
MESSAGE : ECF=0x82BA00E1=-2101739295
DATA #1 : Codepath, 8 bytes
4
请让我知道我在这里缺少什么