web-dev-qa-db-ja.com

SQLを使用してネットワークマシンからExcelファイルを読み取る方法

一部のExcelファイルデータをSQLテーブルにインポートしようとしています。これにはOPENROWSETを使用することを考えました。問題は、csvファイルが同じネットワーク内の別のマシンにあることです。このExcelファイルを読み取るにはどうすればよいですか? OPENROWSETを使用してこれを行うことができない場合、他の方法はありますか?アドバイスをお願いします。関連するドライバーをインストールするクライアントマシンへの権限がないため、リンクサーバーを使用できないことに注意してください。

3
mayooran

SQL Serverインポートおよびエクスポートウィザード は、ソースから宛先にデータをコピーするIntegration Servicesパッケージを作成する最も簡単な方法を提供します。

これにより、 SQL ServerエージェントでのSSISパッケージ実行のスケジュール の説明に従って、SQLエージェントジョブを介してスケジュールできるパッケージが作成されます。リフレッシュ頻度。

また、Andy によるデータのExcelからSQLテーブルへのインポートについては、この10ステップパッケージの作成を参照してください。ExcelからSQL Serverへのデータの移動-10ステップ

この記事では、執筆時点で最新バージョンのSSIS 2012を使用していますが、2008または2005を使用している場合でも、多くの違いに気付くことはありません。

4
KASQLDBA

JET OLEDBタイプのクエリをSQLエージェントジョブとしてスケジュールすることもできますが、以下のコードを使用します。

SELECT  *

FROM    OPENDATASOURCE( 'Microsoft.Jet.OLEDB.4.0',
                        'Data Source=C:\PathToExcelFile\ExcelFile.xls;Extended Properties=Excel 8.0')...[Sheet1$]

SSISをインストールしていない、インストールできない、またはインストールしたくない場合にのみ、このアプローチをお勧めします。このファイルのコンテンツを定期的にインポートすることを計画している場合は、エラー処理やデータ変換などをT-SQLで最初から書き込むのではなく、SSISで構成する方が簡単な場合があるため、SSISを使用したほうがよいでしょう。

OLEDBソリューションは迅速なソリューションであり、Jet OLEDBドライバー以外の追加のアプリケーションを必要としない場合がありますが、SSISはより優れた長期的なソリューションになります。 SSISを調査し、テスト環境にデータを挿入するパッケージを作成することをお勧めします。

4
James Anderson