sql >> データベース >  >> RDS >> Oracle

別のORACLEデータベースからのクエリテーブル

    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] ;
    



    1. AndroidSQLiteDBが値の追加を完了していません

    2. SQLServer内部結合の基本と例

    3. Postgres IntervalSpringData動的パラメーターが機能しない

    4. PostGISバージョンを入手する