[英]Oracle ORA-02089 with Java
嘗試從Java調用PL / SQL存儲過程時出現以下錯誤: ORA-02089: COMMIT is not allowed in a subordinate session
它可以從Oracle測試得很好。 有人對這個有經驗么?
嘗試這種方式;
oracle文檔對錯誤的說法是什么:
COMMIT是在不是兩階段提交全局協調器的會話中發出的。
基本上您正在執行分布式事務。 作為分布式事務的一部分,您嘗試調用自治事務。 這是不可能的,因為分布式事務需要執行2PC。
嗯,我認為這與XA有關。 當我使用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;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.