# Externe Daten/Dateien in Oracle importieren



## TutorialKing (13. August 2008)

Hallo zusammen,

ich befinde mich in einer Windows/Oracle 10 Umgebung.
Es sollen verschiedenste Dateitypen/Daten in Oracle importiert werden, bestenfalls direkt in die vorhande Tabellenstruktur.

Datentypen sind (XML,txt,csv,xls,access etc.)
 - XML sind dabei auch unterschiedlich aufgebaut (z.b. über xsd parsen)

Umsetzungsmöglichkeiten gegeben :
 - direkt über Oracle (SQLLoader, PL/SQL etc)
 - über vba (Access,Excel)
 - Eigenentwicklung (Java,C#)

Mit welchen Hilfsmittel würden hier die Profis das gegebene umsetzen?

Zusatz : Am liebsten wäre es mir es direkt mit Oracle Boardmitteln umsetzen zu können. Leider habe ich bis jetzt die Erfahrung gemach, dass man nicht wirklich flexibel ist. SQLLoader liest kein XMl sondern nur txt ein. Auch müsste ich später noch eine Export XML Schnittstelle mit vorgegebenen xsd Schema bauen, das hat mit vorgegeben Tools von Oracle noch nie wirklich geklappt (Allerdings habe ich hier auch nur begrenzte Erfahrungen)
Eine Eigenentwicklung kann ich fast ausschließen, da ich bei 0 anfangen müsste und es in der vorgegebenen Zeit nicht zu schaffen ist dies umzusetzen.

Ich hoffe ihr könnt mir helfen. Danke


----------



## Cojote (13. August 2008)

Hallo,

ich kenne mich mit Oracle so gar nicht aus aber da kannst du sicherlich auf reichlich Erfahrung zurückgreifen, beschäftige mich aber mit dem Thema Datenintegration.
Wenn du es in Oracle schaffst würde ich es damit machen (aber hier fehlt mir das Wissen ob es mit den Boardtools überhaupt möglich ist)

Eine Eigenentwicklung halte ich wie du für einen Schuss ins eigene Knie der richtig schmerzhaft werden kann. Einmal und nie wieder, falls das nie wieder dann überhaupt noch so einfach möglich ist.
Ich nutze für Datenintegration ein ETL Tool. ETL Tools sind ursprünglicherweise fürs Data Warehousing gedacht wo große Datenmengen extrahiert, transformiert und in ne Zieldatenbank zurückgeschrieben werden. Da gibts im OpenSource Java-Bereich bereits einige etablierte Tools.

Ich persönlich nutze Kettle (http://kettle.pentaho.com). Kettle besitzt eine Vielzahl von Plugins die beispielsweise eine XML-Datei ein Excel-Sheet, Access Datenbanken usw einlesen können. Es lassen sich komplexe Prozesse modellieren, beispielsweise kannst du die Daten einlesen und sie durch weitere Schritte laufen lassen. Jeder Schritt definiert eine Aktion auf den Daten, du kannst selbst Daten aus verschiedenen Quellen zusammenführen (sowas wie n Table-Join nur auf Java-Basis).
Der große Vorteil ist das grafische Tool und die definierten Schritttypen. Es ist zwar alles in Java aber du musst keine einzige Zeile programmieren.
Der Nachteil ist eine gewisse Einarbeitungszeit. Man muss schon einige Stunden investieren bis man das Prinzip verstanden hat und einen solchen Prozess vernünftig modellieren kann. Dafür sind dann aber mit der notwendigen Erfahrung selbst komplexeste Dinge möglich, was einem einen enormen Grad an Freiheit gibt.
Ich nutze das Tool sehr gerne und häufig und habe selbst mit sehr großen Datenmengen gute Erfahrungen gemacht.


----------



## TutorialKing (13. August 2008)

Hallo Cojote,

heureka ! Das ist ja genau das was ich suche. Über das Schlagwort ETL bin ich auch schon gestolpert konnte mir bis jetzt aber nicht wirklich etwas darunter vorstellen. In Wikipedia wunderschön beschrieben. Ich habe mir das vorgeschlagene Tool Kettle (http://kettle.pentaho.com) kurz angeschaut und ich finde es sieht sehr gut aus. Sicher es scheint komplex zu sein, aber wer flexibel arbeiten will kommt um komplexe Sachen nicht umher.
Oracle scheint hier wohl auch eine Lösung anzubieten. Oracle Warehouse Builder(http://www.oracle.com/technology/products/warehouse/index.html)

Ich werde mich mal in beide Richtungen einarbeiten. In Wikipedia wurden auch noch weitere Tools genannt.

Könnte hier jemand gute Tutorials,Videos etc. aufzeigen ? Speziell Oracle Warhouse Builder und Kettle ?


----------

