Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Przeniesienie danych miedzy Oracle a MySQL
Forum PHP.pl > Forum > Bazy danych
bigu
Witam!
Mam wielki problem!!! Jesli mozecie i wiecie to pomozcie, napiszcie choc cokolwiek co by mi pomoglo. A wiec ma za zadanie zrobic glupia rzecz ;-) Chce przenosic dane z bazy Oracle (tylko niektore, np. z jednej tabeli, choc jesli juz by nie bylo wysjscia to moze i wszystko) do MySQL. I zupelnie nie wiem jak mam to zrobic, bo z Oracla moja wiedza kuleje. Dane te maja byc przenoszone raz dziennie. Nie wiem czy zastosowac jakis skypt? Czy eksportowac w jakis psosb dane w oracle? Ja jestem blizszy stworzeniu sktyptu w php by wymienial dane miedzy dwoma bazami. Tylko w jaki sposob to zrobic, czy moge podajmy np.: polaczyc sie jednorazowo z baza danych Oracle i MySql i czytac potrzebne mi informacje z Oracle i wyslac je do MySQL? TYlko czy polaczenie moze odbywac sie w tym samym czasie? A moze lepiej przenosic dane najpierow do pliku temp.txt zakonczyc polaczenie z baza danych Oracle, a pozniej polaczyc sie z MySQL i zczytac dane? Pomozcie! Dzieki z gory za kazde propozycje? Jesli byscie mogli to rzuzcie przykladowy skypt, chociaz do polaczenia z Oracle i pobrania pewnych danych, bo zalezy mi na czasie!!! Dzieki!
nospor
Ja bym zrobił właśnie przenoszenie do pliku textowego (np. csv), a potem z niego czytal do mysql.
bigu
A moglbys dac jeszcze ktos przykladowy skrypt przeenoszenie danych z oracla do pliku tekstowego, w mysql wiem juz co i jak, gorzej z oracle sad.gif
nospor
u mnie oracle też kuleje. Ale jak wiesz w mysql jak się robi, to w oracle podobnei tylko inne funkcje trzeba wywolać do pobrania danych.
przydatne będą:
OCIExecute
OCIParse
OCISetPrefetch
OCIFetchInto
OCIFreeStatement
poczytaj se o nich. Dzięki nim pobierzesz dane z oracla, jak pobierzesz to będziesz mógl zapisać do pliku
Aa nawet nie musisz zapisywac do pliku, możesz od razu do mysql wrzucać. No bo jak z oracla juz pobierzesz, to zaden problem wpisac to do mysql.
SongoQ
Ja mam lepsze rozwiazanie. Stosujesz JAVA i z poziomu ORACLE wkladasz dane do MySQLa.


Odnosnie ORACLE analogicznie jak w MySQLu, kiedys juz odpowiadalem na posta jak laczyc sie z ORACLEM i pobierac dane.

Dodane:

Do laczenia uzywasz ocilogon
Nastepnie $par = OCIParse($polaczenie, $p_szQuery);
$resource = OCIExecute($par, OCI_DEFAULT);

A do zwracania rekordow:
while (OCIFetchInto($par, $tablica,......)
mozesz wstawic dodatkowe parametry.

To powinno Ci wystarczyc, jesli nie bedziesz wiedzial to pisz.
Synaps
Cześć, ja proponuje Ci zreazliowanie tego poprzez eksporty danych z Oracla do pliku, a nastepnie zaimportowanie do MySQL'a. W takim przypdaku może obejśc sie bez pisania skomplikowanych skryptów. Dla każdej z tych baz masz narzędzia która umożliwią Ci ta operacje. Dla Oracle'a jest poprostu sqlplus , po stronie MySql'a jest mysqlimport. Dzięki tym narzędziom cała robota sprowadzi się do napisania prostego skryptu w shell'u.
SongoQ
@Synaps przy zalozeniu ze zgodnosc pol jest taka sama.

Rozwiazan mozna wiele wymyslac, kazdy pomysl jest dobry byle spelnil oczekiwanie.
Synaps
@SongoQ
Niekoniecznie, to rozwiązanie ma tą zalete że z Oracla możesz wyciągnąć sobie te pola jakie chcesz. Piszesz odpowienie zapytanie do bazy Oracle'a ktore wyciaga z tabelki(kilku table) dane ktore potrzebujesz i konwertuje kolumny do formatu jaki potrzebuje w MySQL'u. Takie zapytanko później uruchamiasz w SQLPlus i wynik przekierowujesz do pliku. Jedyna niedogoność jaka może wystąpić to ogranicznie w mysqlimport ktore pozwala na importowanie danych do jednej tabeli (plik musi miec format nazwa_tabeli.rozszerzenie), dlatego też trzeba by napisać odpowiedni skrypt.
SongoQ
Wszystko zalezy jak podejdziesz do problemu. Hm wsumie o tym nie pomyslalem zeby zrzucac juz gotowa wersje dla MySQLa.
bigu
No ciekawe ciekawe chlopaki, dzieki. No jak wspomnialem wymiana ma byc raz dziennie! Potrzebuje tego do pracy inz. to ostatni jej fragment, mysle ze skorzystam jednak ze skyptu php, bo bedzie cikawiej, a moze w pracy przedstawie kilka technik smile.gif Dziex, jak cos jeszcze to prosze o komentarze tongue.gif


A ma jeszcze jedno pytania natury technicznej...chodiz o importowanie w mysql, dokladnie o to ze mi zaimprotuje cala baze tak? nie wiem, to sie pytam ;-) Bo ja chce to zrobic w taki sposob ze z oraclea pobieram tylko dane np z jednego dnia, od godziny 0:00, i doklejam je do odpowiadajacej tabeli w mysql (dolaczam!) I tak codziennie
SongoQ
Mozliwosci jest bardzo duzo, niektore sa bardzo szybkie do zaimplementowania a niektore nie.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.