我試圖運行從Java到PosgresSQL查詢和我從stmt.execute(sql)
如何防止事務關閉在catch(例外e)?
一個錯誤,我想執行一個新的查詢,幫我打印出特定的行失敗,但是當我到達catch (Exception e)
交易被中止。
我不能創建一個新的事務,因爲我正在使用臨時表。如何防止交易中止?
org.postgresql.util.PSQLException: ERROR: current transaction is aborted, commands ignored until end of transaction block
try (Statement stmt = data.db.getConnection().createStatement()) {
// data.db.getConnection().setSavepoint("sp01");
// insert to fact table
TableSchema factTableSchema = factInfo.getTableSchema();
// build SQL
String sql = "Select * From....";
try {
stmt.execute(sql); // this row is failing
}
catch (Exception e) {
try {
// now i would like to run a query only in case arrived here, but the transaction is closed
// how could i prevent from trasanction to close ?
ResultSet rs = stmt.executeQuery(" SELECT Bla,Bla From..");
Log.debug("");
}
catch (Exception e2) {
Log.debug("");
}
}
創建一個新的聲明。 –
你會得到什麼異常,因爲'select'通常不會導致異常,除非你有語法錯誤。請注意,PostgreSQL在錯誤時中止事務,除了啓動新的事務外,沒有恢復。 –
第一個例外是整數超出範圍。 – 2Big2BeSmall