トラブル発生。

java.sql.SQLException: ORA-01453: SET TRANSACTIONはトランザクションの最初の文である必要があります

con.setAutoCommit(false);
...SQL実行...
con.setTransactionIsolation(Connection.TRANSACTION_XXX);

とかやると出るけど、んなとこ見当たらず。

con.setAutoCommit(false);

は何度呼ばれても、エラーにならず。
API 見たら、トランザクション中にこのメソッドが呼ばれると、
そのトランザクションはコミットされるらしい。
納得。


SQL*Plus とかで

set transaction read only;
set transaction read only;

とかやっても出る。


どうやら、OracleJDBC Driver の問題くさい。
9i だと、con.setReadOnly(true) で同様のエラーが出る。
8i だと、未サポートエラーが出る。