02089 with Java
I'm getting the following error when trying to call a PL/SQL stored procedure from Java: ORA-02089: COMMIT is not allowed in a subordinate session
It tests fine from Oracle. Does anyone have any experience with this?
Try this ways;
What does the oracle documentation say about the error:
COMMIT was issued in a session that is not the two-phase commit global coordinator.
Basically you are executing a distributed transaction. As part of a distributed transaction you are trying to invoke an autonomous transaction. This is not possible as distributed transactions are required to do a 2PC.
Hmm, I think it's related to XA. It works fine when I bracket the stored procedure with AUTONOMOUS_TRANSACTION Pragma:
PROCEDURE foo (val IN VARCHAR2(4000)) is
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO tbl1 VALUES (val);
DELETE FROM tbl2;
COMMIT;
END foo;
链接地址: http://www.djcxy.com/p/6296.html
上一篇: 搜索日期和时间在oracle中使用
下一篇: 02089与Java