ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
3846
3846
EMPFEHLEN
-
Hallo,
ich habe eine Access-DB bzw. eine CSV-Datei mit vielen Daten (ca.5000).
Jetzt möchte ich eine Oracle-DB mit diesen Daten füllen.
Leider hab ich in meinem Oracle SQL Developer keine Funktion gefunden, wo ich die Daten einfach so kopieren kann. Ich will die aber auch nicht händisch eintippen. Gibt es da irgendeine Möglichkeit?
Danke
-
15.12.06 17:34 #2
Es gibt natürlich sehr viele Möglichkeiten. Sehr elegant und schnell sind External Tables, allerdings nicht ganz so trivial um es in 2 Sätzen zu erklären.
Wenn du aber schon vom SQL Developer sprichst, in der neusten Version 1.1.0.21 gibt es eine Importfunktion.
Rechte Maustaste auf die Tabelle in die du importieren willst => Import Data => Excel
Deine CSV Datei musst du vorher in Excel öffnen und eben auch als .xls Datei speichern. Die Reihenfolge der Spalten musst du entsprechend anpassen falls die alte und neue Tabelle abweichen.
Meld dich ob`s damit funktioniert hat, ansonsten probieren wirs mit External Tables bzw. dem SQL*Loader.
p.s. 5000 Sätze sind nicht viel
liebe Grüße
Exceptionfault (http://exceptionfault.de)
Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008
-
wow.......das ging ja schnell. Danke für die Antwort, werde es demnächst dann ausprobieren:
nun ja 5000 Datensätze in eine DB händisch einzugeben dauert trotzdem lang
Vielleicht kannst du mir aber bei einem anderem Problem helfen:
Ich greife aus einer Java-Applikation auf Oracle-DB und bekomme (nach einer gewissen Zeit) folgende Fehlermeldung:
ORA-01000: Maximale Anzahl offener Cursor überschritten
Im google steht ich soll in der Datei "init.ora" Konfiguration anpassen (max_open_cursors erhöhen).
Leider greif ich auf die DB nicht lokal zu. Und selbst wenn ich diese Cursorzahl auf ein Maximum stellen werde, werd ich sie irgendwann mal erreichen.
Was sind denn diese Cursors?Und wie kann ich sie aus meiner Anwendung heraus schließen?
-
16.12.06 01:24 #4
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.724
- Blog-Einträge
- 29
Hallo!
Dann würde ich mal sagen, dass in der Java Anwendung die verwendeten Cursor nicht geschlossen werden ... Wurde für die entsprechenden ((Prepared/Callable)Statement / ResultSet -Instanzen close() aufgerufen?Ich greife aus einer Java-Applikation auf Oracle-DB und bekomme (nach einer gewissen Zeit) folgende Fehlermeldung:
ORA-01000: Maximale Anzahl offener Cursor überschritten
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
also es läuft bei mir folgendermaßen:
es gibt eine Methode wo ich meine Info von ResultSets bekomme:
dann in einer anderen Klasse Methoden mit eigentlichen Abfragen :Code :1 2 3 4 5 6 7 8 9 10 11 12
ResultSet res; res = getDatenFromTableA(); res.next(); setFeldA(res.getString(1)); res = null; res = getDatenFromTableB(); res.next(); setFeldB(res.getString(1)); res = null; res = getDatenFromTableC(); //und so weiter.....am Schluss dann: res.close();
und im getResult steht:Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14
ResultSet getDatenFromTableA() { ResultSet res = null; String sql = "SELECT BLABLABLA FROM BLABLA"; try { res = getResult(connection, sql); } catch(SQLException e) { e.printStackTrace(); } return res; }
Wo muss ich noch die Cursors schließen, ohne dass ich was an meiner Codestruktur ändern muss?Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
ResultSet getResult(Connection connection, String sql) throws SQLException { ResultSet res = null; if (connection != null) { Statement statement = connection.createStatement(); if (statement.execute(sql)) { res = statement.executeQuery(sql); } } else throw new SQLException("No Database connection available!"); return res; }
-
19.12.06 14:45 #6
Ich komm zwar mehr aus der .NET Welt, aber mir scheint du schliesst nirgends dein Resultset, sondern verwirfst einfach die Referenz darauf. res = null schliesst das Resultset nicht sofort, wahrscheinlich erst wenn der Garbage Collector die Resource wieder frei gibt zu der du nach dem NULL setzen keine Referenz mehr hast.
Besser ist es vor dem NULL setzen, explizit res.close(); aufzurufen.
( das wäre zumindest bei .NET meine Vermutung
)
liebe Grüße
Exceptionfault (http://exceptionfault.de)
Never say: "Always"! Always say: "Never say never"! - Tom Kyte @ Ask Tom Live in Berlin 2008
Ähnliche Themen
-
Blobs füllen und auslesen (Oracle DB / C++)
Von LordTerra im Forum C/C++Antworten: 2Letzter Beitrag: 17.11.09, 11:27 -
PL/SQL mit Oracle 10g: Trigger erstellen, tabelle bei gleichheit eines Strings füllen
Von macgyver4711 im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 16.02.09, 20:10 -
JTable mit Daten füllen
Von ratze79 im Forum JavaAntworten: 2Letzter Beitrag: 04.06.07, 20:33 -
Formulara mit Daten aus DB füllen und dann die neuen Daten aus Formular in die DB
Von StreHa im Forum PHPAntworten: 2Letzter Beitrag: 09.07.06, 12:18 -
Combobox mit daten aus db füllen
Von Luda im Forum ASPAntworten: 6Letzter Beitrag: 14.09.03, 18:20





Zitieren


Login




