サーチ…


データベースリンクの作成

CREATE DATABASE LINK dblink_name 
CONNECT TO remote_username 
IDENTIFIED BY remote_password 
USING 'tns_service_name';

リモートDBは、次の方法でアクセスできます。

SELECT * FROM MY_TABLE@dblink_name;

リンクされたデータベース内のオブジェクト名を知らなくてもデータベースリンクの接続をテストするには、次のクエリを使用します。

SELECT * FROM DUAL@dblink_name;

リンクされたデータベースサービスのドメインを明示的に指定するには、ドメイン名がUSINGステートメントに追加されます。例えば:

USING 'tns_service_name.WORLD'

ドメイン名が明示的に指定されていない場合、Oracleはリンクが作成されているデータベースのドメインを使用します。

データベース・リンク作成のためのOracleのマニュアル:

データベースリンクの作成

「ORA1」と「ORA2」という2つのデータベースがあるとします。データベースリンクを使用して、データベース "ORA1"から "ORA2"のオブジェクトにアクセスできます。

前提条件:専用データベース・リンクを作成するには、 CREATE DATABASE LINK特権が必要です。プライベートデータベースリンクを作成するには、 CREATE PUBLIC DATABASE LINK権限が必要です。

* Oracle Netは両方のインスタンスに存在する必要があります。

データベースリンクを作成する方法:

ORA1から:

SQL> create <public> database link ora2 connect to user1 identified by pass1 using <tns name of ora2>;

データベースリンクが作成されました。

DBリンクが設定されたので、ORA1から次のコマンドを実行することで証明できます。

SQL> Select name from V$DATABASE@ORA2; -- should return ORA2

ユーザuser1がORA2上のオブジェクト(以下のTABLE1など)に対してSELECT権限を持っている場合、 "ORA1"から "ORA2"のDBオブジェクトにアクセスすることもできます。

  SELECT COUNT(*) FROM TABLE1@ORA2;

前提条件:

  • 両方のデータベースが起動していなければなりません(開かれている)。
  • 両方のデータベース・リスナーが稼働している必要があります。
  • TNSを正しく設定する必要があります。
  • ORA2データベースにユーザーuser1が存在し、パスワードを確認して検証する必要があります。
  • ユーザーuser1には、少なくともSELECT権限が必要です。ORA2のオブジェクトにアクセスするには、ユーザー権限が必要です。


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow