![]() |
Datenbank: Oracle • Version: 11g • Zugriff über: ODBC/Direkt
csv aus Oracle Datenbank extrahieren
Hallo zusammen
Ich habe folgendes Problem/Ziel: Ich möchte aus einer Oracle Datenbank einige bestimmte Tabelle in ein CSV abspeichern. Abfrage wäre also
Code:
Nach dem ich diese CSVs habe, muss ich einige Spalten entfernen, und gewisse Spalten aus dem einen CSV in das andere importieren.
SELECT * FROM TABLE
Wenn dies abgeschlossen ist, muss ich die Daten im neuen CSV in eine MySQL Datenbank speisen... Dies alles möchte ich natürlich am ende mit einem einzelnen Klick erledigen lassen. Am wichtigsten ist für mich, das extrahieren der Tabelle aus Oracle. Für die beiden anderen Aufgaben, finde ich ziemlich sicher etwas mit google... Danke euch schonmal! |
AW: csv aus Oracle Datenbank extrahieren
Etwas Ähnliches hatten wir doch gerade erst:
![]() [edit] Oracle kann doch von sich aus bereits nach CSV exportieren: ![]() |
AW: csv aus Oracle Datenbank extrahieren
Zitat:
Ja du hast recht, etwas ähnliches wird im erst genannten Thread besprochen. Zum zweiten Link: sieht sehr interessant aus. Leider weiss ich nicht, wie ich die SQL Plus Anfrage an den Oracle Server senden soll.. Ich habe noch dies im Netz gefunden: ![]() Eigentlich ist dies exakt das was ich brauche. Leider kennt mein Delphi XE6 Starter kein SqlExpr und auch kein DbxOracle. Kennt jemand diese Komponenten und weiss ob man diese herunterladen kann? [EDIT] ![]() Danke! |
AW: csv aus Oracle Datenbank extrahieren
Ich habe Delphi Starter.
Deshalb kann ich ADODB nicht verwenden :( |
AW: csv aus Oracle Datenbank extrahieren
Man kann es sich kompliziert machen und alle Tabellen erst als CSV exportieren, die dann auseinanderpflücken, Teile rauswerfen, Teile reinnehmen, schauen, ob die auch so zusammenpassen ..... bla bla bla ...
Oder man erstellt sich eine Abfrage, die alle Daten schön zusammen sucht und exportiert diese dann. Variante 1: ABM mit Fehlerpotential Variante 2: Schnell gemacht und einfach zu pflegen Welches Schweinerl hättens denn gern? |
AW: csv aus Oracle Datenbank extrahieren
Zitat:
Dann lege dir vor die beiden DB-Server jeweils einen Webserver mit einem PHP-REST und du führst den Abgleich per Cron-Job aus. Die Delphi Tüte kannst du also zulassen :stupid: |
AW: csv aus Oracle Datenbank extrahieren
Zitat:
Dies klingt interessant. Einen Webserver habe ich sowieso im Betrieb, um dann die Daten aus der MySQL DB abzufragen. PHP ebenfalls. Bei einem solchen Abgleich würde ich wie folgt vorgehen: Gesamte MySQL Tabelle löschen. Spalten bzw. Zeilen nach und nach mit CREATE und den DATEN aus der Oracle DB auffüllen. Dannach würde ich die zweite Oracle Tabelle wählen und dann mit UPDATE die fehlenden Spalten in der MySQL Tabelle mit den Daten aus der Oracle Tabelle befüllen. Warum würde ich die komplette Tabelle löschen? Weil sich an diversen Stellen der Oracle Tabelle Daten ändern können. Der Sync umfasst ca. 12000 Zeilen aus der Oracle Tabelle. Als ich mit PHP und oci_query zuletzt folgenden Query ausführe: "SELECT * FROM tabellexy" ist mir der Firefox bzw. der Apache Service abgeschmiert... Gibt es da elegantere Wege oder Tipps eurerseits? |
AW: csv aus Oracle Datenbank extrahieren
Ich weiß ja nicht was du da genau vorhast und wieviel Speicher die komplette Tabelle verbraucht.
Aber benötigst du die komplette Tabelle? Du hast doch geschrieben, du hast Daten aus unterschiedlichen Tabellen, die irgendwie zusammen müssen. Ausserdem kann man das auch in Häppchen unterteilen, wenn es für WebServer A oder B zu groß vom Speicher ist. Man muss da nur logisch vorgehen.
|
AW: csv aus Oracle Datenbank extrahieren
Zitat:
Ja du hast recht. Ich benötige eigentlich nicht die komplette sondern teile von Tabelle A und Teile von Tabelle B Somit würde meine Abfrage lauten:
Code:
Und dann dies als Array abspeichern. Dies geht mit oci_fetch_all
SELECT XY, ABC, CDE, FGH FROM tabelle
Dannach dieses wieder im MySQL mit INSERT einfügen. Die nun leer gebliebenen Spalten, würde ich dann mit UPDATE mit den Daten aus der Oracle Tabelle B befüllen. |
AW: csv aus Oracle Datenbank extrahieren
Und warum keine Abfrage die dir die Daten komplett liefert?
SQL-Code:
Ist das so ein Hobby von dir, es immer möglichst auf dem umständlichsten Weg zu lösen? :gruebel:
select foo.a, foo.b, bar.c, bar.d
from foo join bar on bar.a = foo.a |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz