ただし、データの一部が Oracle データベース サーバーに配置されると、多くの課題が生じる可能性があります。たとえば、サーバーへの接続をセットアップするだけでも簡単な作業ではありません。 現在、Microsoft .NET ベースのオンライン注文システムを使用しているが、品質管理および保守システムでは依然として古い Oracle データベース アプリケーションを使用しているとします。製品保証期間中にお客様が製品交換を注文した場合、注文料金はかかりません。現時点では、Oracle データベースからリアルタイムのクエリ結果を取得する必要があります。リンク サーバーを確立すると、SQL Server から Oracle データベース内の顧客情報をリアルタイムでクエリして、既存の顧客を確認できるようになります。
データが異なる SQL Server データベースに分散している場合、サーバーを接続すると、サーバー間分散クエリを実行できます。すべてのデータベース サーバーが SQL Server である場合、接続サーバーのセットアップは非常に簡単で、知っておくべきことはすべて SQL Server オンライン マニュアルに記載されています。ただし、データの一部が Oracle データベース サーバーに配置されると、多くの課題が生じる可能性があります。たとえば、サーバーへの接続をセットアップするだけでも簡単な作業ではありません。 SQL Server の Enterprise Manager で Oracle 接続サーバーを設定する場合でも、この SQL Server は Oracle のクライアントであることを理解する必要があります。したがって、SQL Server が配置されているサーバーに Oracle のクライアント ソフトウェアを正常にインストールして構成する必要があります。 Oracle が提供する製品は Oracle 8 以降のデータベースのみをサポートしているため、Oracle 8 以降のデータベースを使用していると想定します。 Oracle Net8 関数ライブラリは、SQL Server に必要なクライアント ソフトウェアを提供します。
訳者注 1:
サーバーへの接続を設定する場合、Microsoft が提供する OLE DB Provider for Oracle が使用されます。使用される Oracle ネットワーク ライブラリは SQL*Net 2.3.3.0.4 以降のバージョンですが、これは Oracle 7.3 データベースによって提供されます。つまり、Oracle データベースを SQL Server の接続サーバーとして設定するには、Oracle データベースのバージョンが 7.3.3.4 以降であり、適切な SQL*Net または Net 8 関数ライブラリと組み合わせる必要があるだけです。
ソース:
1. Oracle 7 Server 入門リリース 7.3.4
2. SQL Server Books Online: Oracle 用 OLE DB プロバイダー
Oracle データベースでは、スキーマは SQL Server の専門家に知られている単一のデータベース (翻訳者注 2) を表します。 Oracle データベースに接続するときは、スキーマ名、パスワード、およびホスト文字列を指定する必要があります。特定の Oracle アカウントごとに Oracle スキーマがあり、存在できるスキーマは 1 つだけです。したがって、スキーマ名は実際にはスキーマ所有者のアカウント名と同じです。 Oracle のデータ ディクショナリをクエリして、スキーマに関する詳細情報を取得できます。
Oracle 接続文字列は、サービス名 (サービス名) またはシステム識別データ (システム識別子、SID) とも呼ばれます。 SQL Server データベース インスタンスと呼ばれるものは、Oracle ではデータベースと呼ばれます。したがって、Oracle Server をインストールするとき、インストール プログラム Oracle Universal Installer (SQL Server のセットアップ プログラムに似たグラフィカル インターフェイスを備えたインストール プログラム) は、Oracle データベースの名前として SID 名を尋ねます。
訳者注 2:
この部分の原著者が言及したスキーマの説明には誤りがあります。 Oracle スキーマは、同じユーザーが所有するすべてのデータベース オブジェクト (スキーマ オブジェクト) のコレクションとして見ることができます。たとえば、ユーザー scott が作成した EMP テーブルの完全名は SCOTT.EMP で、SCOTT は EMP のスキーマ名です。したがって、スキーマ名は実際には Oracle データベースのユーザー アカウントです。ただし、データベースと比較してはいけません。SQL Server のデータベース アーキテクチャにはデータ ファイルとログ ファイルが含まれていますが、Oracle のスキーマ オブジェクトはテーブルスペースにのみ存在するからです。一部の読者の混乱を避けるために、これについてここで説明します。
Windows オペレーティング システムに Oracle Server をインストールするときに SID を Ora817 に設定すると (この記事の例と同じ)、システム内に OracleServiceORA817 という名前のサービスが存在します。