我開發一個項目,該項目執行以下操作:PL/SQL和JDBC提交:即使我在jdbc中執行conn.rollback,PL/SQL中的寫入提交是否會提交到數據庫?
- 截斷臨時表T1。
- 將1000行插入臨時表T1中。
- 執行一個包含一些提交語句的過程。
- 從表T1插入行到其他相同的表(關於結構)T2。
- 用commit語句在其中執行2個更多的過程。
5步以上形成一個交易給我。所以要麼全部完成,要麼全部都不應該完成。
現在,即使我做了conn.rollback,如果發生一些錯誤,很少有更改反映到數據庫中。
是程序中聲明的原因嗎?截斷表是否隱含地提交到數據庫?
如果是?有什麼可能的解決方案?
在此先感謝!
P.N. :數據庫在oracle中,我對PL/SQL的瞭解不多
如果您從另一個客戶端調用過程,調用客戶端應該提交或回滾而不是在存儲過程中,因此您將完全控制您的事務。 – user75ponic
所以我將不得不從我的程序中刪除提交語句。我會這麼做 –
截斷語句怎麼樣?這些是DDL。我認爲他們會承諾,即使我不承諾。糾正我,如果我錯了! –