Sunvisor Lab.

Register Now | Log in | Lost Password

SQL Server 2005からリンクテーブルでOracleに接続する

トップ (メニュー)  >  データベース  >  SQL Server 2005からリンクテーブルでOracleに接続する

SQL Server 2005からOracleのテーブルを参照

SQL Serverにリンクサーバーを設定することで,SQL ServerからOralceにアクセスできるようになります。

サーバーにOracleのクライアントをインストールする

SQL Serverが稼働しているサーバーにOracleのクライアントをインストールします。インストール後SQLサーバーを再起動します。

リンクサーバーの作成

  1. SQL Server上にリンクテーブルを作成します。SQL Server Management Studio(以下SSMS)を開きます。
  2. サーバーオブジェクトのリンクサーバーを右クリックして,コンテキストメニューの新しいリンクサーバーを実行します。

全般ページは次のように設定します。

リンクサーバー

SQL Server側から指定する際の別名です。

サーバーの種類

その他のデータソースを指定します。

プロバイダ

Microsoft OLE DB Provider for Oracleを指定します。オラクルが提供するOracle Provider for OLE DBを使うとうまく動作しないみたいです。

次にセキュリティページ

「このセキュリティコンテキストを使用する」を選択して,リモートログインとパスワードを入力します。OKボタンをクリックするとリンクサーバーが作成されます。

リンクサーバーのテーブルを見る

リンクサーバーのテーブルをSELECT文で指定する時には,テーブル名を

<リンクサーバー名>.<カタログ>.<スキーマ>.<オブジェクト名>

のように指定しなければなりません。カタログは指定する必要がないので,次のようになります。

TEST..SCHEMA_A.TABLE

上記は,TESTというリンクサーバーのSCHEMA_AスキーマにあるTABLEテーブルを指定する構文です。この方法で次のようにSELECT文を記述します。

SELECT
FIELD1,
FIELD2,
FIELD3
FROM
TEST..SCHEMA_A.TABLE

注意すべき点は,オブジェクトにシノニムを指定しても取れないことです。本来はデータを取ってこられるはずですが,リンクテーブルからの場合は,本来のテーブル名から取ってくる必要があるようです。オブジェクトにビューを指定することも可能ですが,処理速度が遅いように思います。

 シノニムの作成

TEST..SCHEMA_A.TABLE という表記方法はとても長ったらしいと感じます。そこで,SQL Server上でシノニムを作成することができます。

CREATE SYNONYM ORA_TABLE FOR TEST..SCHEMA_A.TABLE

とすると,それ以降そのデータベースではORA_TABLEという名前でリンクテーブルを利用できます。
シノニムを作成するともう一つ良いことがあります。それはA5:SQLにて入力補完機能を利用できるようになることです。リンクテーブルは入力補完の対象ではありませんが,シノニムは対象となりますので,A5:SQLでの開発がとてもやりやすくなります。A5:SQLのVersion 2.3以降のクエリデザイナでも利用できます。

AccessのADPプロジェクトで参照する

リンクしたOracleのテーブルやシノニムはAccessのデータベースウィンドウには表示されません。これらをAccessのADPプロジェクトで参照するには,ビューを作りましょう。

CREATE VIEW viwOraTalbe
AS
SELECT
  FIELD1,
  FIELD2,
  FIELD3
FROM
  TEST..SCHEMA_A.TABLE

このようにビューを作ってしまえば,ADPプロジェクトのデータベースウィンドウのクエリの画面に表示されるようになります。

プリンタ用画面
友達に伝える
投票数:10 平均点:8.00

前
SQL Server 2005のデータベースコピーウィザードを使う
カテゴリートップ
データベース
次
データベースダイアグラムでエラー発生
Powered by XOOPS Cube 2.0 © 2005-2006 The XOOPS Project | Designd by Theme4u.Net