Hallo Forum,
ich bin gerade (oder eher immer noch) dabei Schema-Migration von PostgreSQL in Oracle.
Die Tabellen inkl. PrimaryKey und ForeignKey habe ich in Oracle erstellen können. Ich möchte aber bevor ich die Tabellen erstelle kontrollieren, ob die Tabellen mit gleichem Namen schon in der DB vorhanden sind bzw. wenn diese vorhanden sind, müssen sie vor dem CREATE TABLE Befehl gelöscht werden.
Dafür hätte ich normalerweise den Befehl "DROP TABLE IF EXISTS" benutzt. Leider scheint oracle SQL-Developer das nicht zu unterstützen. Ich hatte von Blöcken BEGINN ... END gelesen:
Aber hier habe ich folgende Fehlermeldung bekommen:
java.sql.SQLException: SQL-Zeichenfolge ist keine Abfrage.
Wie binde ich den Block hier richtig ein? Oder wie kann ich "DROP TABLE IF EXISTS" am sinnvollsten ersetzen?
Schönen Dank im Voraus!
capri
ich bin gerade (oder eher immer noch) dabei Schema-Migration von PostgreSQL in Oracle.
Die Tabellen inkl. PrimaryKey und ForeignKey habe ich in Oracle erstellen können. Ich möchte aber bevor ich die Tabellen erstelle kontrollieren, ob die Tabellen mit gleichem Namen schon in der DB vorhanden sind bzw. wenn diese vorhanden sind, müssen sie vor dem CREATE TABLE Befehl gelöscht werden.
Dafür hätte ich normalerweise den Befehl "DROP TABLE IF EXISTS" benutzt. Leider scheint oracle SQL-Developer das nicht zu unterstützen. Ich hatte von Blöcken BEGINN ... END gelesen:
Code:
String myDropTable = "BEGIN EXECUTE IMMEDIATE 'DROP TABLE " + tName.toUpperCase()
+ "'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE;END IF; END;";
Statement stmt4;
stmt4 = con2.createStatement();
ResultSet rs4 = stmt4.executeQuery(myDropTable);
Aber hier habe ich folgende Fehlermeldung bekommen:
java.sql.SQLException: SQL-Zeichenfolge ist keine Abfrage.
Wie binde ich den Block hier richtig ein? Oder wie kann ich "DROP TABLE IF EXISTS" am sinnvollsten ersetzen?
Schönen Dank im Voraus!
capri