2013-02-28 19 views
6

Tôi đang nâng cấp một ứng dụng java hiện có. Có dữ liệu trong 2 cơ sở dữ liệu DB2 khác nhau. Ứng dụng đã nhận dữ liệu từ 2 cơ sở dữ liệu khác nhau, nhưng nó luôn tìm kiếm từ một và sau đó. Có cách nào để nối dữ liệu từ 2 cơ sở dữ liệu DB2 khác nhau bằng một SQL SELECT không?Tôi có thể kết nối dữ liệu từ 2 cơ sở dữ liệu DB2 khác nhau không? (Giống như cơ sở dữ liệu được liên kết với SQL Server)

Đây là những gì tôi đã cố gắng:

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 

tôi nhận được lỗi này:

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

Tôi có thể làm điều gì đó với một bảng tạm thời? Tôi có thể chạy chọn này không có lỗi, nhưng nó không giúp tôi ... (chưa)

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

EDIT:

Một DB2 Temp Table có thể giúp đỡ. Tôi đã có thể tạo ra một cái. Bây giờ tôi cần phải (đi ngủ) và thử chọn nó và THEN làm việc của tôi.

+1

gì nếu bạn đặt các phần bạn có thể chạy vào một subquery và tham gia với nó? –

+0

Ý tưởng hay, nhưng tôi đã thử sử dụng phần phụ 'where exist' cũng có cùng kết quả lỗi. – Jess

+0

Tôi không nghĩ rằng ý tưởng bảng tạm thời sẽ hoạt động. Vấn đề là phiên là kết nối cụ thể. Nếu bạn muốn viết mã để chọn vào bảng tạm thời, sau đó thay đổi kết nối với một lược đồ khác, bảng tạm thời không còn khả dụng nữa, bởi vì bạn nhận được một phiên mới. – Jess

Trả lời

1

Sử dụng đầy đủ tên đủ điều kiện <database>.<user/schema>.<tablename>

cái gì đó như:

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

Bạn đã thử 'chọn' ở trên chưa? Tôi đã gặp lỗi tương tự, 'THAM KHẢO TUYÊN BỐ CHO MỤC TIÊU TỪ XA LÀ HỢP LỆ. SQLCODE = -512, SQLSTATE = 56023, DRIVER = 4.14.113' – Jess

+3

Máy chủ của bạn có được cấu hình để cho phép dịch vụ liên kết không? 'Đã liên kết' sẽ được bật để truy vấn này hoạt động. –

+0

@MayurManani Bạn không đề cập đến bất kỳ điều gì về các dịch vụ được liên kết trong câu trả lời của bạn. Như vậy, nó không phải là một câu trả lời hoàn chỉnh. –

Các vấn đề liên quan