Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (日本語) » SQL Anywhere サーバ - SQL の使用法 » リモート・データとバルク・オペレーション » リモート・データへのアクセス

 

リモート・テーブルのジョイン

次の図は、ローカル・データベース・サーバのプロキシ・テーブルにマッピングされた、リモート・サーバ RemoteSA にある SQL Anywhere サンプル・データベースのリモート・テーブル Employees と Departments を示しています。

リモート・テーブルとプロキシ・テーブルがマッピングされています。

異なる SQL Anywhere データベースのテーブル間にジョインを使用できます。次の例では、データベースを 1 つだけ使用した簡単なケースについて説明して、その仕組みを示します。

♦  2 つのリモート・テーブル間のジョインを実行するには、次の手順に従います (SQL の場合)。
  1. empty.db という名前の新しいデータベースを作成します。

    このデータベースにはデータがありません。このデータベースは、リモート・オブジェクトを定義して、SQL Anywhere サンプル・データベースにアクセスするためだけに使用します。

  2. empty.db を実行するデータベース・サーバを起動します。この操作は、次のコマンド・ラインを使用して行います。

    dbeng11 empty
  3. Interactive SQL から DBA ユーザとして empty.db に接続します。

  4. 新しいデータベースで、RemoteSA という名前のリモート・サーバを作成します。このサーバのサーバ・クラスは saodbc で、接続文字列は DSN SQL Anywhere 11 Demo を参照します。

    CREATE SERVER RemoteSA
    CLASS 'saodbc'
    USING 'SQL Anywhere 11 Demo';
  5. この例では、ローカル・データベースと同じユーザ ID とパスワードをリモート・データベースで使用するので、外部ログインは必要ありません。

    場合によっては、リモート・サーバでデータベースに接続するときにユーザ ID とパスワードの入力が必要です。新しいデータベースの場合は、リモート・サーバへの外部ログインを作成します。例では簡素化するために、ローカルのログイン名とリモートのユーザ ID はどちらも DBA です。

    CREATE EXTERNLOGIN DBA
    TO RemoteSA
    REMOTE LOGIN DBA
    IDENTIFIED BY sql;
  6. p_Employees プロキシ・テーブルを定義します。

    CREATE EXISTING TABLE p_Employees
    AT 'RemoteSA..GROUPO.Employees';
  7. p_Departments プロキシ・テーブルを定義します。

    CREATE EXISTING TABLE p_Departments
    AT 'RemoteSA..GROUPO.Departments';
  8. SELECT 文にプロキシ・テーブルを使用して、ジョインを実行します。

    SELECT GivenName, Surname, DepartmentName
    FROM p_Employees JOIN p_Departments
    ON p_Employees.DepartmentID = p_Departments.DepartmentID
    ORDER BY Surname;