Ewelina Benedykt

Ewelina Benedykt Specjalista, Pene

Temat: zapytanie do dwóch baz danych w sql developer

Witam,
Ma pytanie czy jest możliwe zapytanie (poprzez join) do dwóch baz, z których jedna jest bazą oracle-duża baza, w której nie mam uprawnień do modyfikacji, a druga to baza access? Niestety nie jestem specjalistą w tej dziedzinie:/

Z góry dziękuję za pomoc

Temat: zapytanie do dwóch baz danych w sql developer

Jest możliwe. Należy z poziomu Oracle'a skonfigurować dblinka do źródła ODBC, które będzie wskazywało bazę Accesową. Jest z tym trochę roboty i, niestety, wyłącznie dla administratora - trzeba zmodyfikować kilka ważnych plików Oracle'a, zrestartować nasłuch - bez uprawnień tego nie zrobisz. Po skonfigurowaniu dblinka do danej bazy, można odwoływać się do jej tabel przez: tabela@db_link

Kilka przykładów.
http://www.easysoft.com/applications/oracle/database-g...
http://www.dba-oracle.com/t_database_link_sql_server_o...
http://docs.oracle.com/cd/B28359_01/gateways.111/b3104...

Jeśli nie ma pod ręką informatyka, nie ma się prawa do tworzenia nowych baz, zaś danych nie ma zbyt dużo (wiem, że cała baza jest duża, ale może akurat potrzebny podzbiór danych nie jest?), to można:
- lokalnie postawić Oracle XE i pod nim bawić się dblinkami do obu baz (serwerowej i Accesowej)
- zainstalować jakąkolwiek inną (darmową) bazę (SQL Server Express, MySQL, PostgreSQL, SQLite), wyciągnąć z obu baz potrzebne dane, przenieść je do nowej bazy (np. plikiem CSV, INSERTami) i tam eksperymentować, już bez dblinkówTen post został edytowany przez Autora dnia 27.10.14 o godzinie 19:20

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora
Ewelina Benedykt

Ewelina Benedykt Specjalista, Pene

Temat: zapytanie do dwóch baz danych w sql developer

Podłączyłam te dwie bazy już do Sql Developera, tylko teraz problem powstał taki, że w jednym zapytaniu mogę odnieść się tylko do jednej bazy, tzn. albo do oraclowej albo accessowej. Zapytanie do danej bazy działa tylko gdy w oknie zapytań po prawej strony u góry jest wybrana dana baza. Nie można w jednym zapytaniu połączyć dwóch baz, żeby porównać odpowiednie rekordy?

konto usunięte

Temat: zapytanie do dwóch baz danych w sql developer

Ewelina B.:
Witam,
Ma pytanie czy jest możliwe zapytanie (poprzez join) do dwóch baz, z których jedna jest bazą oracle-duża baza, w której nie mam uprawnień do modyfikacji, a druga to baza access? Niestety nie jestem specjalistą w tej dziedzinie:/

Z góry dziękuję za pomoc

technicznie się da, kolega Adrian napisał co i jak
pytanie czy musisz? może twój główny problem da się rozwiązać inaczej

Wojciech Gardziński

Wypowiedzi autora zostały ukryte. Pokaż autora

Temat: zapytanie do dwóch baz danych w sql developer

Adrian O.:
Jest możliwe. Należy z poziomu Oracle'a skonfigurować dblinka do źródła ODBC, które będzie wskazywało bazę Accesową. Jest z tym trochę roboty i, niestety, wyłącznie dla administratora - trzeba zmodyfikować kilka ważnych plików Oracle'a, zrestartować nasłuch - bez uprawnień tego nie zrobisz. Po skonfigurowaniu dblinka do danej bazy, można odwoływać się do jej tabel przez: tabela@db_link

Kilka przykładów.
http://www.easysoft.com/applications/oracle/database-g...
http://www.dba-oracle.com/t_database_link_sql_server_o...
http://docs.oracle.com/cd/B28359_01/gateways.111/b3104...

Jeśli nie ma pod ręką informatyka, nie ma się prawa do tworzenia nowych baz, zaś danych nie ma zbyt dużo (wiem, że cała baza jest duża, ale może akurat potrzebny podzbiór danych nie jest?), to można:
- lokalnie postawić Oracle XE i pod nim bawić się dblinkami do obu baz (serwerowej i Accesowej)
- zainstalować jakąkolwiek inną (darmową) bazę (SQL Server Express, MySQL, PostgreSQL, SQLite), wyciągnąć z obu baz potrzebne dane, przenieść je do nowej bazy (np. plikiem CSV, INSERTami) i tam eksperymentować, już bez dblinków


A czy nie prostszym rozwiązaniem byłoby poprzez ODBC zlinkować tabele z oracle do access i tam wykonać zapytania? Robi się to 2 minuty i nie trzeba żadnych zmian administracyjnych - wystarczy zdefiniować połączenie, wybrać tabele i można pisać SQL.
Pozdr.
A

Temat: zapytanie do dwóch baz danych w sql developer

Arkadiusz M.:
A czy nie prostszym rozwiązaniem byłoby poprzez ODBC zlinkować tabele z oracle do access i tam wykonać zapytania? Robi się to 2 minuty i nie trzeba żadnych zmian administracyjnych - wystarczy zdefiniować połączenie, wybrać tabele i można pisać SQL.
Pozdr.
A

To zależy od dwóch rzeczy:

1. jeśli baza Oracle'owa jest naprawdę duża, zaś baza Accessowa jest np. niewielką pomocniczą bazą (słowniki albo jakieś raporty, podsumowania etc), to pchanie przez sieć do Accessa dużych zbiorów danych do dalszych JOINów może okazać się problematyczne (raz, że czas przesyłu przez sieć, dwa, czy Access sobie poradzi). Odczułem to nie raz podczas wdrożeń, mając "związane ręce do czas przyjazdu pana informatyka", a musząc wykonać określone zadanie - stosowałem wtedy takie myki.

1a. co innego, gdyby wystarczyło zrobić jakieś agregaty na Oracle'u i tylko pobrać ich wyniki - wtedy danych w bazie może być i terabajt ale zagregowane podsumowanie to raptem parę liczb.

2. jaki SQL będą wykorzystywany. Jeśli mają to być trudne do przetłumaczenia elementy dialektu PL/SQL, to odpada. Nie zawsze jest czas czy wręcz możliwość przetłumaczenia danej konstrukcji na inną. PL/SQL ma wszystko, co możemy chcieć zrobić w Access, ale Access nie ma 10% tego, co możemy chcieć zrobić w Oracle.

Twoje rozwiązanie jest na pewno przydatne, ale wszystko zależy od tego, co dokładnie trzeba zrobić.
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: zapytanie do dwóch baz danych w sql developer

PowerPivot w Excelu 2013 i 2010 (mniejsza wersja) daje możliwość połączenia danych z różnych repozytoriów. Czyli bez trudów ACC z Bazą Ora.
Tworzenie relacji do przygotowania raportu, czy przygotowanie kostki jest teraz banalnie proste.
Jak moi przedmówcy zaznaczyli - nie ma potrzeby pobierać danych w całości, można je z agregować na poziomie grupowania w zapytaniu. Jeśli jednak potrzebne są dane źródłowe cache pivota zmieści to w nowym formacie Excela.

przykład w tym filmie

Temat: zapytanie do dwóch baz danych w sql developer

Związków. Nie relacji. (BTW)
Oskar Shon

Oskar Shon Dodatki do Office
www.VBATools.pl

Temat: zapytanie do dwóch baz danych w sql developer

Adrian, jakich związków?


Obrazek

Temat: zapytanie do dwóch baz danych w sql developer

Jeśli mówimy (a mówimy) o relacyjnym modelu danych Codda, to relationship nie oznacza relacji, tylko związek. I jest to fundamentalna różnica.

Na Twoim zrzucie treść tooltipa mówi wyraźnie, że chodzi o związki pomiędzy tabelami (tabela reprezentuje relację w RMD). Ale już napis na przycisku brzmi "relacje"... Podejrzewam, że to wina jakiegoś "nieinformatycznego" tłumacza w MS, który lata temu (bo ten problem istnieje odkąd pamiętam) nie widział różnicy między tymi pojęciami, albo uznał, że "relacje" brzmi przystępniej, niż "związki" i tak zostało. Chociaż wystarczy np. rozwinąć skrót ERD, by otrzymać... "diagram związków encji" (a nie "diagram relacji encji").

To, że Microsoft od lat miesza terminy (choćby w takich artykułach), które powinien odróżniać student II roku informatyki, nie oznacza, że my, osoby zajmujące się na co dzień bazami danych, powinniśmy ignorować ten błąd. To trochę tak, jak by elektronik mieszał prąd (natężenie prądu) z napięciem. A że owo powielanie jest nagminne, mamy dowody co chwila - choćby tutaj: http://www.goldenline.pl/grupy/Komputery_Internet/bazy...

Na szczęście widać, że coraz więcej ludzi zwraca na to uwagę i próbuje w prosty sposób naświetlić problem: http://www.sqlpedia.pl/relacyjne-bazy-danych-pojecia-p...
Samo określenie RELACJA w nomenklaturze języka polskiego, może być trochę tutaj mylące. W końcu RELACJA i ZWIĄZEK to synonimy a jak widać dotyczą dwóch zupełnie różnych światów RELACJA=TABELA a ZWIĄZEK to tak naprawdę RELACJA :).

PS: warto też rzucić okiem na ten wpis: The suffix -ship....Ten post został edytowany przez Autora dnia 19.11.14 o godzinie 04:00

Następna dyskusja:

Zapytanie do dwóch baz danych




Wyślij zaproszenie do