# Remote Oracle View lokal auf MySQL speichern



## hispeedsurfer (18. Juli 2007)

Hallo zusammen, 

stehe gerade vor einem Problem, und zwar:

Rechner lokal:

Windows XP SP2
MySQL DB (xampp)
keine Ahnung was sont noch gebraucht(ODBC, JDBC)


Entfernten Zugriff auf Oracle DB VIEW über VPN Tunnel (wurde mir gesagt). Zugangsdaten wie SID, USER, Passwort, Port etc alles vorhanden.


Nun soll das Ganze so ablaufen.
Zunächst soll ein Abbild der entfernten VIEW lokal auf der MySQL Datenbank gespeichert werden. Danach soll jede Woche einmal ein Update zwischen remote VIEW und lokaler DB laufen damit die Daten lokal wieder aktuell sind. Es gibt keinen Transfer in die andere Richtung.

Die lokale DB dient als Grundlage für eine Java Applikation. Der Zugriff aus dieser Applikation soll nicht direkt über VPN Tunnel auf die Oracle DB erfolgen sondern eben auf die lokale MySQL Datenbank.


Ich hoffe das war jetzt nicht zu kompliziert und mir kann jemand eine gute Lösung geben.


Gruß
Andreas


----------



## Nico Graichen (18. Juli 2007)

Hi

Abgesehen davon dass ich nicht weiß, ob MySQL den Zugriff auf Oracle zulässt, musst du auf jeden Fall auf dem XP Rechner einen Oracle Client installieren, der den Zugriff zum Server regelt. Auf diesen kannst du dann per ODBC, OleDB, JDBC, .NET,... zugreifen.

Das Problem mit Oracle und MySQL kannst du aber leicht umgehen, in dem du die Oracle Express Edition auf dem XP Rechner installierst.


----------



## hispeedsurfer (19. Juli 2007)

Ok, danke niggo.
Nur leider habe ich immernoch das Problem mit dem Import auf die lokale DB. Oracle Express Edition habe ich installiert. Einen Network-Link zu der remote DB habe ich auch hinbekommen. Das Import-Tool 'impdp' schein auf der Express Edition nicht zu funktionieren. 

Ausgabe: "SP2-0734: Unbekannter Befehl ab "> impdp OA..." - restliche Zeile ignoriert."

Wäre sehr Dankbar für eine Lösung

Gruß
Andreas


----------



## lmarkus31 (19. Juli 2007)

Hallo,

so wie es scheint, hast du versucht DataPump zu nutzen aus SQL heraus.

So geht das nicht ganz ;-)

Es gibt drei Möglichkeiten:

aus dem DOS-Prompt heraus mit Parametern versorgen


```
impdp user/pw@//host-ip/service ....
```

oder wenn du es aus SQL*Plus heraus machen möchtest, kannst du den host-Befehl benutzen um eine Shell zu bekommen:


```
host impdp user/pw@//host-ip/service ....
```

Als letztes bleibt noch das SYS.DBMS_DATAPUMP Package was du nutzen kannst.

Hier der Link zur DataPump Doku von Oracle 10g:

http://download.oracle.com/docs/cd/B19306_01/server.102/b14215/dp_overview.htm#i1009203

Markus


----------



## hispeedsurfer (20. Juli 2007)

hi zusammen,

hole die Daten nun mit 


```
create tabele tablename as (select * from tablename@networklinkname);
```

und erstelle dabei gleichzeitig die Tabelle lokal.


Jetzt habe ich nur noch das Problem mit dem wöchentlichen Datenabgleich/Update das eben nur Daten geholt werden die lokal noch nicht vorhanden sind. 

Übrigens war das mit den Daten holen eine ziemliche Plagerei. Waren ca. 25 mio. Datensätze - hat ziemlich lange gebraucht. Deshalb Suche ich eine möglichst effektive Möglichkeit nur neue hinzugekommene Daten über das Netz zu holen.


Danke soweit und wenn ihr noch Tipps/Anregungen habt, immer her damit.


Gruß
Andreas


----------

