Làm thế nào để kết nối với một db khác bằng cách sử dụng các thủ tục được lưu trữ?


11

Tôi cần lấy một số dữ liệu từ một db bên ngoài và thực hiện một số tính toán với nó trong một db khác, liệu có thể kết nối với một db bên ngoài từ một thủ tục được lưu trữ không? Cảm ơn các bạn.

Tái bút

Tôi đang sử dụng Oracle và cả hai cơ sở dữ liệu trong cùng một máy chủ.

Câu trả lời:


10

Bạn muốn sử dụng Liên kết cơ sở dữ liệu (DBLink).

http://www.stanford.edu/dept/itss/docs/oracle/10g/server.101/b10759/statements_5005.htm

http://psoug.org/reference/db_link.html

-- create tnsnames entry for conn_link
conn_link =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = perrito2)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orabase)
    )
  )


CREATE DATABASE LINK conn_user
USING 'conn_link';

SELECT table_name, tablespace_name FROM user_tables@conn_user; 

@conn_user ở cuối một thủ tục hoặc tên bảng sẽ báo cho công cụ pl / sql truy vấn liên kết db được chỉ định cho thông tin đó.


1
Được nhúng sâu trong liên kết PSOUG của bạn là một tham chiếu đến gợi ý DRIVING_SITE - hiệu suất của các truy vấn trên DBLINK có thể khác nhau rất nhiều - nếu bạn BIẾT nơi hầu hết việc xử lý dữ liệu sẽ được thực hiện, hãy chắc chắn đặt DRIVING_SITE cho cơ sở dữ liệu nơi chứa dữ liệu xử lý sẽ hiệu quả nhất.
ScottCher


0

vâng, bạn có thể, bạn có thể đọc dữ liệu từ bất kỳ cơ sở dữ liệu nào bằng cách sử dụng dg4odbc. Bất kỳ cơ sở dữ liệu tuân thủ odbc nào cũng có thể được kết nối và cơ sở dữ liệu Oracle cung cấp cho bạn có thể tìm thấy trình điều khiển odbc hoạt động cho nền tảng bên ngoài. .odbc.ini và $ ORACLE_HOME / hs / admin là các vị trí cấu hình của bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.