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


11

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

PS。

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

回答:


10

データベースリンク(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エンジンに指示します。


1
PSOUGリンクの奥に埋め込まれているのはDRIVING_SITEヒントへの参照です-DBLINK全体のクエリのパフォーマンスは大幅に異なる可能性があります-ほとんどのデータ処理が行われる場所を知っている場合は、DRIVING_SITEをデータのあるデータベースに設定してください処理が最も効率的です。
ScottCher、2011年


0

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.