web-dev-qa-db-ja.com

ストアドプロシージャを使用して別のデータベースに接続する方法

外部データベースからいくつかのデータを取得し、それを別のデータベースで計算する必要があります。ストアドプロシージャから外部データベースに接続することはできますか?みんなありがとう。

PS。

私はOracleを使用していて、両方のデータベースが同じサーバーにあります。

11
eiefai

データベースリンク(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は、その情報に指定されたdbリンクをクエリするようにpl/sqlエンジンに指示します。

10
REW

はい、できます。dg4odbcを使用して、あらゆるデータベースからデータを読み取ることができます。 ODBCに準拠したデータベースであれば、Oracleデータベースに接続でき、プラットフォーム用の有効なODBCドライバーを見つけることができます。 .odbc.iniおよび$ Oracle_HOME/hs/adminが構成場所です。

0
ik_zelf