2012-07-26 36 views
5

Trong oracle, nếu cơ sở dữ liệu khác nằm trong cùng một máy chủ, tôi đã làm như sau để tạo ra một từ đồng nghĩatạo từ đồng nghĩa với bảng trong một cơ sở dữ liệu lưu trữ trong một máy chủ khác nhau

CREATE SYNONYM synonymName FOR databaseName.schema.table; 

Tôi nên làm gì để tạo ra một từ đồng nghĩa cho các bảng trong cơ sở dữ liệu được lưu trữ trong một máy chủ khác để tôi có thể cung cấp thông tin đăng nhập kết nối máy chủ.

Tôi cần điều này cho cả oracle và netezza.

Chỉnh sửa: Trong khi thử (đối với Oracle) bằng cách tham khảo câu trả lời bên dưới, tôi gặp lỗi cú pháp khi liên kết từ xa chứa địa chỉ IP hoặc '-' trong tên liên kết. ví dụ.

CREATE PUBLIC DATABASE LINK abc-def.xyz.com CONNECT TO user IDENTIFIED BY pw USING 'databaseName'; 

Trả lời

8

Đối với Oracle, bạn sẽ tạo một liên kết cơ sở dữ liệu cơ sở dữ liệu từ xa:

CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 'remotedb'; 

Sau đó, tạo ra các từ đồng nghĩa:

CREATE SYNONYM syn FOR [email protected]; 

Sau đó, bạn chỉ cần chọn x, y, z TỪ syn ;

Không chắc chắn về netezza.

EDIT:

Bạn không thể sử dụng ký tự "-" trong tên liên kết cơ sở dữ liệu.

Nếu bạn chọn sử dụng địa chỉ IP trong tên liên kết, thì bạn phải bao quanh tên liên kết trong dấu ngoặc kép. Bạn không chắc chắn lý do tại sao bạn muốn làm điều này anyway - nếu địa chỉ IP của cơ sở dữ liệu từ xa của bạn thay đổi thì sao? Đối với tôi, tên liên kết DB phải là một bộ nhớ cho cơ sở dữ liệu từ xa. Một địa chỉ IP cho tôi biết rất ít.

+0

Bạn có nhớ xem chỉnh sửa ở trên không? – chemicalkt

0

Ngoài @DCookie

Nếu bạn muốn tạo từ đồng nghĩa của DB từ xa.

CREATE PUBLIC DATABASE LINK rmt CONNECT TO user IDENTIFIED BY pw USING 
'HOST_NAME:PORT/SERVICE_NAME_SID' 
Các vấn đề liên quan