Helios Co. Geschrieben 9. September 2010 Teilen Geschrieben 9. September 2010 Hallo @all, ich habe mal wieder ein Problem mit dem leidigen Zeit Datentypen von Oracle. Und zwar habe ich 2 Oracle Datenbanken. Eine ist lokal die andere läuft auf einem Server. In einem Tabelspace sind 4 Tabellen,die ich auch lokal haben möchte. Also habe ich via SqlDeveloper zuerst die DDL exportiert und anschließend den Inhalt der Tabellen als .csv exportiert. Lokal versuche ich nun die 4 Tabellen wieder zu erstellen und die Daten aus den .csv`s zu importieren. Das Erstellen der Tabellen war kein Problem. Das Importieren ist jedoch durchaus ein Problem. Einerseits werden Einträge gefunden die Nullwerte enthalten obwohl die Spalte Not Null ist. Wie das kommt ist mir immer noch ein Rätsel. Das andere große Problem sind Timestamp Spalten. In der Datenbank auf dem Server liegen die Einträge wie folgt vor: YYYY-MM-DD HH24:MI:SS Exportiert werden sie so: DD.MM.YY HH:MM:SS,Milis Bsp. 18.10.05 07:18:26,000000000 Auf diese Weise werden keine Spalten aus der csv in die Tabelle importiert. Ich brauche die Daten auch in diesem YYYY-MM-DD HH24:MI:SS Format. Der Developer liefert bei der Vorschau auch noch das richtige Format, aber in der csv steht bereits das falsche Format. Was mache ich falsch? Großartig ändern kann ich zumindest beim Export nix:( Bin dankbar für jeden Rat! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Corto -sX- Geschrieben 9. September 2010 Teilen Geschrieben 9. September 2010 ganz einfach, developer aus. cmd auf und dann mal schön langsam import und export lernen, oder impdp und expdp. Der Developer macht beim Export immer kappes draus, ich weis auch net warum. Aber wenn du wirklich dinge importieren und exportieren willst, bist du total auf dem Holzweg, denn das geht besser und schneller und stressfreier über eine .bat oder .sh und ner parameterdatei. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Helios Co. Geschrieben 9. September 2010 Autor Teilen Geschrieben 9. September 2010 (bearbeitet) Hallo Corto, vielen Dank für deine Antwort! An impdp und expdp bin ich auf meiner Suche im Web auch gestoßen, wirklich gute und einleuchtende Beispiele habe ich dazu leider nicht gefunden. Hast du dazu eine gute Quelle, oder kannst du selbst schnell ein simples Beispiel backen? Vielleicht noch eine Anmerkung: Ich kann beide Datenbanken nicht miteinander verbinden. D.h. der Export muss auf jeden Fall über irgendeine Zwischendatei gehen. .bat oder .sh und ner parameterdatei. Das ist mir nicht klar. Wie genaumeinst du das? Wie kann ich denn mit einem einfachen Skript Daten aus Oracle exportieren? Ist das letzenendes nicht eine Indirektion, da ich doch eh PL/SQL verwenden müsste. Nur halt im bat oder sh Skript. Oder habe ich dich hier gänzlich falsch verstanden? Bearbeitet 9. September 2010 von Helios Co. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Helios Co. Geschrieben 9. September 2010 Autor Teilen Geschrieben 9. September 2010 (bearbeitet) Hmm was exp anbetrifft bin ich nun durchgestiegen. Eigentlich recht simpel. Hier ein Beispiel für die Nachwelt: exp dbuser/userpassword FILE=/home/expdat.dmp TABLES=tablename dbuser und userpassword sind wie die Namen schon sagen, der User dem die Tabelle gehört und sein Passwort. Das File wird automatisch generiert, man kann hier folglich einen freien Namen wählen. Bei Tables gibt man die Tabelle(n) an. Bei mehreren Tabellen einfach in Klammen setzen und durch Komma trennen. Den imp Befehjl habe ich noch nicht ausprobiert. Sobald ich soweit bin, werde ich einen Nachtrag schreiben. Bearbeitet 9. September 2010 von Helios Co. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Corto -sX- Geschrieben 9. September 2010 Teilen Geschrieben 9. September 2010 Hi Helios, sry ich hatte noch keine Zeit dir zu Antworten, aber wie ich sehe hast du dir das meiste schon selbst angelesen. imp und exp sind tolle werkzeuge - soviel vorweg. impdp und expdp sind sogar noch toller - da schneller und einfacher. Für genau deinen Fall allerdings bietet exp die funktion an, einfach per remote die daten zu exp'en und auf die eigene PLatte das image (aka dumpfile) zu schreiben... die Optionen von imp und exp steuert man am besten durch Parameterfiles. hier meine parameterfile für einen export übers netz: :\exp parfile=par.txt inhalt par.txt: userid='user/passwort@quelldb' file=Export_tab1-3.dmp log=Export_tab1-3.log indexes=n rows=y TABLES=(tab1,tab2,tab1) GRANTS=N STATISTICS=none die optionen selbst kannst du googlen, diese hier waren für große datenmengen, daher nur die row=y. im import wird statt exp natürlich imp aufgerufen mit folgendem parfile: userid='user/pass@Zieldatenbank' file=Export_tab1-3.dmp log=Import_tab1-3.log indexes=n rows=y FROMUSER=quelluser TOUSER=zieluser IGNORE=y GRANTS=N STATISTICS=none recordlength=65535 Commit=N skip_unusable_indexes=y TABLES=(tab1,tab2,tab3) die wenigsten optionen sind nötig um einen einfachen export zu machen, dieses Beispiel waren mehrere Gigabyte daten, darum die parameter zum ignorieren oder die recordlength & co... hoffe ich konnte helfen, frag ruhig wenn dir was unklar ist. Falls andere DBAs hier reinschauen und mir noch tipps für große importe geben können, immer her damit Die frage ist immer nur: kann der eine DB Server den anderen per TNSping erreichen? wenn ja, einfach über netz nen export machen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.