2009年2月16日月曜日

パッケージ データへの分散クエリの実行

データ変換サービス (DTS) パッケージをリンク サーバーとして登録し、パッケージに対して分散クエリを実行できます。この機能によって、各種のソース (たとえば、Oracle と DB2 データ ソース) からのデータを単一のパッケージに統合し、そのデータを変換し、変換された分散クエリの結果を外部のデータ コンシューマに公開することができます。
パッケージ データに対して分散クエリを実行するには、sp_addlinkedserver ストアド プロシージャを使用して、パッケージをリンク サーバーとして定義する必要があります。次のコード例では、DTS パッケージに対して sp_addlinkedserver を使用する方法を示しています。sp_addlinkedserver 'DTSOLEDBPkg', 'PackageName', 'DTSPackageDSO', '/FC:\Dts\Dts01.dts')
sp_addlinkedserver コマンドで、各引数は以下のようになります。
DTSOLEDBPkg は、作成するリンク サーバーの名前です。
PackageName は、OLE DB データ ソースの製品名です。ここでは、任意の名前または NULL 文字列を指定できます。
DTSPackageDSO は、DTS パッケージの OLE DB プロバイダ名です。
最後の引数は、ファイル DTS01.dts の場所を指定します。
パッケージをリンク サーバーとして定義したら、このパッケージをデータ変換元として含む分散クエリを実行できます。以下に分散クエリの例を示します。Northwind データベースの Orders テーブルに対し、Oracle サーバーの Customer テーブルからデータを取得するパッケージとの結合操作を行います。このクエリでは、Orders テーブルと Customers テーブルに共通キー CustomerID があることを想定しています。SELECT a.OrderID, a.CustomerID, a.OrderDate, b.Companyname, b.Region
FROM Orders AS a, dtsLink...packageNameOracle AS b
WHERE a.CustomerID = b.CustomerID
このクエリの packageNameOracle は DTS パッケージ名です。ただし、パッケージの複数ステップをデータ ソースとして使用する場合は、パッケージ ステップ名を指定できます。

0 件のコメント: