Rollback mit Savepoint funktioniert auf Oracle nicht (ORA-01086)

xerberuz

Bekanntes Mitglied
Folgender Code funktioniert wunderbar auf Postgrsql und DB2. Bei Oracle bekomm ich aber eine ORA-01086 wenn ich versuche einen rollback auf den savepoint auszuführen.

ORA-01086: savepoint 'ORACLE_SVPT_1' never established in this session or is invalid

Java:
final Savepoint statementSavepoint = this.connection.setSavepoint();
Statement statement = null;
try
{
    statement = this.connection.createStatement();
    statement.execute(sqlStatement.getSqlStatement());
}
catch (final Exception e)
{
    if (sqlStatement.isFailOnError())
    {
      throw e;
    }
    else
    {
      this.connection.rollback(statementSavepoint); //hier fliegt die exception
    }
}
 

Deros

Bekanntes Mitglied
dein Beispiel ist etwas merkwürdig...du machst nen savepoint, führst dann ein statement aus und wenn das schief geht willst du zu dem savepoint zurückspringen? was soll sich denn in der db geändert haben wenn das statement nicht ausgeführt werden konnte?
 

xerberuz

Bekanntes Mitglied
Vermutlich hat sich nichts geändert. Aber selbst dann müsste ich zum savepoint zurück können. Auf anderen Datenbanken funktioniert das ja auch. Die Oracle macht das laut Dokumentation sogar implizit. Also vor jedem INSERT, UPDATE und DELETE Statement einen Savepoint auf den zurückgerollt wird. D.h. ich müsste das auch machen können. Eventuell verursacht aber dieser automatische Rollback die invalidierung meines Savepoints.
 
Zuletzt bearbeitet:

DerEisteeTrinker

Bekanntes Mitglied
Warum so umständlich mit savepoint? AutoCommit aus geschalten vor dem Statement und dann musst das per Hand machen das commit und schon wird automatisch ein rollback von der Oracle gemacht, wenn das Commit nicht kommt, wenn die Verbindung getrennt wurde
 

xerberuz

Bekanntes Mitglied
Warum so umständlich mit savepoint? AutoCommit aus geschalten vor dem Statement und dann musst das per Hand machen das commit und schon wird automatisch ein rollback von der Oracle gemacht, wenn das Commit nicht kommt, wenn die Verbindung getrennt wurde

Auto commit ist aus. Ich hab fesgestellt worans liegt. Das fragliche Statement was ein CREATE statement. Danach ist der Savepoint nciht mehr zu gebrauchen. Bei INSERT, UPDATE und DELETE funktioniert es.

Das ist so umständlich gemacht weil ich den commit erst nach ein paar Statements haben möchte und nicht nach jedem. Der rollback ist eher die Ausnahme weil es ein paar wenige Statements gibt bei denen mir die erfolgreiche Ausführung egal ist. Bei allen anderen wird die ganze Transaktion zurückgerollt und nicht nur bis zum savepoint.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
ruutaiokwu Begin transaction - rollback, commit...? Datenbankprogrammierung 2
N JDBC: rollback() bei Exception geht nicht!? Datenbankprogrammierung 1
N rollback und throws Datenbankprogrammierung 1
A Rollback funktioniert nicht Datenbankprogrammierung 10
F Java SQL Connection mit Rollback Datenbankprogrammierung 2
G Rollback bei nicht richtiger transaktion? Datenbankprogrammierung 3
C MySql kein Rollback Datenbankprogrammierung 19
W MySQL-Connector funktioniert nicht über WLAN -> MacOS Datenbankprogrammierung 10
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
Warum funktioniert MySQL nicht Datenbankprogrammierung 8
S Das printen der Ausgabe des Oracle-SQL-Statements in der Java-Eclipse-Konsole funktioniert nicht Datenbankprogrammierung 6
S Datenbankprogrammierung in Java unter NetBeans 12 funktioniert nicht! Datenbankprogrammierung 1
D JPA gleiche methode funktioniert an einer Stelle, an der anderen nicht Datenbankprogrammierung 3
J Firebase KeepSynced funktioniert nicht Datenbankprogrammierung 0
L SQL-Statement INSERT INTO ON DUPLICATE KEY UPDATE funktioniert nicht Datenbankprogrammierung 5
H Derby/JavaDB Beispiel funktioniert nur einmal Datenbankprogrammierung 7
P LDAP: Daten eintragen funktioniert nicht Datenbankprogrammierung 7
M Java Datenbankanbindung funktioniert nicht Datenbankprogrammierung 4
J Verbindung zu Derby Datenbank funktioniert nicht Datenbankprogrammierung 14
E Warum funktioniert das Erzeugen einer View nicht? Datenbankprogrammierung 1
M DB-Zugriff funktioniert nach JAR-Erstellung nicht mehr Datenbankprogrammierung 3
L SQL Statement mit Switch-Case funktioniert nicht Datenbankprogrammierung 6
L MySQL App/Java Zugriff auf Mysql-DB funktioniert nicht Datenbankprogrammierung 1
1 MySQL Verbindung mit localhost als IP funktioniert, aber mit normaler IP nicht Datenbankprogrammierung 2
J Datenbankeintag eines Warenkorbes funktioniert nicht Datenbankprogrammierung 4
P SQL-Statement "Top 1" oder "limit" funktioniert nicht Datenbankprogrammierung 12
crashfinger jdbc-connection mit jre7 funktioniert nicht Datenbankprogrammierung 5
W No data found: SQL-Abfrage funktioniert nur beim Debuggen Datenbankprogrammierung 3
X3TitanCore mysqldump funktioniert nicht Datenbankprogrammierung 8
C JDBC Datenbank funktioniert nicht Datenbankprogrammierung 7
T HQL Query funktioniert nicht? Datenbankprogrammierung 8
F wie funktioniert if Statement in SELECT? Datenbankprogrammierung 2
W HSQLDB executeUpdate funktioniert nicht Datenbankprogrammierung 20
S HSQLDB DELETE-Statement funktioniert nicht Datenbankprogrammierung 4
K MySQL Verbindung funktioniert in Netbeans aber .jar funktioniert nicht Datenbankprogrammierung 5
C MySQL Update funktioniert nicht Datenbankprogrammierung 11
W jpmdbc Problem -Beispiel funktioniert nicht Datenbankprogrammierung 9
H SQL Abfrage funktioniert nicht. Datenbankprogrammierung 10
D Problem: Prepared Statement (Insert) funktioniert nicht. Datenbankprogrammierung 3
E Einfache Abfrage funktioniert nicht Datenbankprogrammierung 3
G MSSQL Server SELECT Abfrage funktioniert nicht Datenbankprogrammierung 4
J Insert auf Access DB funktioniert nicht Datenbankprogrammierung 5
V commit funktioniert nicht Datenbankprogrammierung 2
A Like-Anweisung funktioniert nicht korrekt Datenbankprogrammierung 2
Y ORACLE - Autoincrement funktioniert nicht Datenbankprogrammierung 2
K Zugriff mittels JDBC funktioniert nur lokal Datenbankprogrammierung 5
V MySql abfrage funktioniert auf einmal nicht mehr Datenbankprogrammierung 2
S Gleiche Verbindung funktioniert einmal und einmal nicht Datenbankprogrammierung 4
E executeUpdate() funktioniert auf einmal nicht Datenbankprogrammierung 2
B MySQL Stored Procedure Aufruf funktioniert nicht Datenbankprogrammierung 4
B Update funktioniert nicht Datenbankprogrammierung 8
A INSERT funktioniert nur im Debug-Modus Datenbankprogrammierung 19
G Insert in MS SQL Server Db funktioniert nicht richtig Datenbankprogrammierung 16
W RsultSet auf null abfragen funktioniert nicht Datenbankprogrammierung 4
D Datenbankzugriff auf MS SQL Server 2000 funktioniert nicht Datenbankprogrammierung 3
F Insert Funktioniert nicht Datenbankprogrammierung 6
S MySQL-Abfrage unter java funktioniert nicht! Datenbankprogrammierung 4
P Insert Into mit Acces und Autowert funktioniert nicht Datenbankprogrammierung 2
J DB Verbindung im IDE funktioniert, als jar nicht Datenbankprogrammierung 5
A delete aus datenbank, funktioniert nicht so richtig Datenbankprogrammierung 10
L DB-Verbindung (Oracle) funktioniert nicht Datenbankprogrammierung 35
S Statement.getGeneratedKeys() funktioniert nicht Datenbankprogrammierung 4
R Datenbank zugriff funktioniert nur offline Datenbankprogrammierung 2

Ähnliche Java Themen

Neue Themen


Oben