我的發言:甲骨文 - 如何正確執行事務?
statement.addBatch("START TRANSACTION;" +
"UPDATE FIRST_TABLE SET FIRST_FIELD = 1;" +
"UPDATE SECOND_TABLE SET SECOND_FIELD = 2;" +
"UPDATE THIRD_TABLE SET THIRD_FIELD = 3;" +
"COMMIT;");
和異常拋出下一行:
statement.executeBatch();
同樣的事情發生,如果我使用的方法execute
:
statement.execute(myTransaction);
例外:
java.sql.BatchUpdateException: ORA-00900: invalid SQL statement
我使用Oracle。我沒有任何異常,如果我在命令行或SQL IDE中執行此語句。它在這種情況下正常工作。有此異常只在Java代碼。哪裏不對?
JDBC不鼓勵使用通過驅動程序提供的功能的語句(如事務),請參閱http://docs.oracle.com/javase/7/docs/api/java/ sql/Connection.html的原因是,用一個語句做這件事可能會使驅動程序處於不一致的狀態 – 2012-08-16 18:35:03