2013-02-28 5 views
6

Ulepszam istniejącą aplikację Java. Istnieją dane w 2 różnych bazach danych DB2. Aplikacja pobiera już dane z 2 różnych baz danych, ale zawsze wykonuje wyszukiwanie z jednego, a następnie drugiego. Czy istnieje sposób łączenia danych z 2 różnych baz danych DB2 za pomocą jednego SQL SELECT?Czy mogę dołączyć dane z 2 różnych baz danych DB2? (Jak bazy danych połączonych z SQL Server)

To co próbowałem:

CREATE ALIAS remote_orders FOR remote_db.schema.orders; 

select * 
from myid.remote_orders a 
inner join local_schema.parts b on (a.key = b.key) 
with ur FETCH FIRST 200 ROWS ONLY 

otrzymuję ten błąd:

STATEMENT REFERENCE TO REMOTE OBJECT IS INVALID. SQLCODE=-512, SQLSTATE=56023, DRIVER=4.14.113 

mogę zrobić coś z tabeli temp? mogę uruchomić ten select bez błędów, ale to mi nie pomoże ... (jeszcze)

select * 
from myid.remote_orders 
with ur FETCH FIRST 200 ROWS ONLY 

EDIT:

DB2 Temp Table może pomóc. Udało mi się go stworzyć. Teraz muszę (iść do łóżka) i spróbować wybrać, a następnie robić moje dołączenie.

+1

Co jeśli umieścić część może napotkasz podkwerendzie i dołączyć do niego? –

+0

Przyjemny pomysł, ale próbowałem użyć pod-wybierz 'where exists' również z tym samym wynikiem błędu. – Jess

+0

Nie sądzę, że pomysł na stół tymczasowy zadziała. Problem polega na tym, że sesja jest specyficzna dla połączenia. Jeśli chcesz napisać kod do wyboru w tabeli tymczasowej, a następnie zmienić połączenie na inny schemat, tabela tymczasowa nie będzie już dostępna, ponieważ otrzymasz nową sesję. – Jess

Odpowiedz

1

Wykorzystanie w pełni kwalifikowana nazwa <database>.<user/schema>.<tablename>

coś takiego:

select * 
from DB1.myid.remote_orders a 
inner join DB2.local_schema.parts b on (a.key = b.key) 
with ur FETCH FIRST 200 ROWS ONLY 
+0

Czy próbowałeś powyższego 'wybierz'? Wystąpił ten sam błąd, "USTALENIE ODNOŚNIE ZDALNEGO OBIEKTU JEST NIEWŁAŚCIWE. SQLCODE = -512, SQLSTATE = 56023, DRIVER = 4.14.113' – Jess

+3

Czy twój serwer jest skonfigurowany do zezwalania na usługi federacyjne? Opcja "Federated" powinna być włączona, aby to zapytanie działało. –

+0

@MayurManani W swojej odpowiedzi nie wspomniałeś nic o usługach federacyjnych. Jako taka, nie jest to pełna odpowiedź. –

Powiązane problemy