Oracleの場合、
CREATE DATABASE LINK ...
例:
データベースリンクを作成してテストすると、(表示したスタイルの)クエリを実行して、リモートデータベースから行を取得できます。
参照: http://docs.oracle.com /cd/E11882_01/server.112/e41084/statements_5005.htm#SQLRF01205
フォローアップ
注:Oracleでは、「データベース」という用語は、Oracleの「インスタンス」に関連付けられたデータファイルとログファイルを指します。 2番目の「データベース」からデータを取得するには、他のデータベースへの2番目の接続が必要です。オラクルは「データベースリンク」と呼ばれる機能を提供します。これにより、あるデータベースインスタンスへのセッション(接続)が別のデータベースインスタンスに接続できるようになります。 (この機能がないと、クライアントは2つの別々の接続を作成する必要があり、2つのデータベースに別々にクエリを実行する必要があります。)
この質問が同じ内の2つの別々の「スキーマ」からのクエリに関するものである場合 データベースの場合、ユーザーが2番目のスキーマのオブジェクトに対して十分な権限を持っている限り、識別子はスキーマの名前で修飾できます(例:
)。SELECT * FROM UATDEVORADB.TABLE_NAME
別のデータベースのデータにアクセスするには、データベースリンクを使用できます...
CREATE DATABASE LINK UADEVORADB
CONNECT TO user
IDENTIFIED BY password
USING 'uadevoradb' ;
(これには、OracleサーバーまたはOracle名サーバーのtnsnames.oraファイルに適切な一致するエントリが必要です。または、tnsnames.oraエントリの代わりに、次のように接続の詳細を入力できます。
CREATE DATABASE LINK UADEVORADB
CONNECT TO user IDENTIFIED BY password
USING '(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=uadevorahost1)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=uadevoradb.domaindb)))'
データベースリンクで指定された「ユーザー」がリモートシステム上のテーブルの「所有者」と異なり、テーブルを参照する同義語がない場合、テーブル識別子は所有者で修飾する必要があります...
>SELECT * FROM [email protected] ;