4

エラー:

OLE DB プロバイダー 'Microsoft.ACE.OLEDB.12.0' は、プロバイダーがシングル スレッド アパートメント モードで実行するように構成されているため、分散クエリには使用できません。

そして、私が見ている答えは、64 ビット Sql Server と 32 ビット Office の間の競合です。Excel で openrowset を Sql Server に実行する方法はありますか?

insert into dbo.FiscalCalendar 
select * from 
openrowset('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml;Database=C:\Users\uname\Desktop\fy11.xlsx;',
'Select * from [Sheet1]')
4

6 に答える 6

8

...重要なのは、/passive フラグを使用して 64 ビット アクセス エンジンをインストールすることです。

c:>AccessDatabaseEngine_64 /パッシブ

于 2014-02-28T18:55:42.060 に答える
2

マイクロソフトはまだこれに関する解決策を考え出していないようです。 製品の Microsoft フィードバック フォームを確認する

SSISを使用するなどのいくつかの回避策があります

于 2010-05-24T18:35:56.313 に答える
1

Microsoft Access データベース エンジン 2010 再頒布可能 64 ビットを最初にインストールする必要があります。これは、ここからダウンロードできます。

Excel ファイルが E:\Sample.xls で、Excel シート名が Sheet1 であるとします。

次のコマンドを実行して、Excel ファイルからデータを取得します。

SELECT * FROM OPENDATASOURCE( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="E:\Sample.xls";
Extended properties=Excel 8.0')...Sheet1$

上記のクエリは、SQL Server 2005 64 ビットおよび SQL Server 2008 R2 64 ビットがインストールされた Windows Server 2008 64 ビットで実行されています。

重要なのは、32 ビットのみの Jet エンジンではなく、64 ビット プロバイダー 'Microsoft.ACE.OLEDB.12.0' を指定することです。

于 2010-07-21T22:53:37.743 に答える
0

Microsoft Access データベース エンジン 2010 再頒布可能 64 ビットをインストールしましたが、成功しませんでした。W7 64 ビット、Office 2010 および SQL 2008 R2 を実行しています。

インポート/エクスポート ウィザードがパッケージを準備しますが、パッケージを保存して実行することを選択すると、問題なく実行されます。エラーが発生したのは、MS VS 2008 でパッケージを開いたときです。Access データベース エンジン 2010 をインストールしても問題は解決しませんでした。私は2007を試してみましたが、うまくいきました。

数字に行きます。

于 2014-07-08T13:44:15.330 に答える
0

私はこれとまったく同じ問題に遭遇しましたが、私ができる唯一のことは、ワークフローの一部としてそれを使用できる SSIS データ ソース コンポーネントでした。

于 2014-02-28T19:20:25.820 に答える
0

状況: SQL Server 2014 (x64/64 ビット) がインストールされた Windows 7 (x64/64 ビット) 上の MS Office 2010 (x86/32 ビット)

私たちのソリューション:

  1. 実行中の場合は SQL Server を停止し、開いている MS Office プログラムをすべて閉じます

  2. MS Access データベース エンジン 2010 再頒布可能パッケージを x64/64 ビット バージョンとしてダウンロード: https://www.microsoft.com/de-de/download/details.aspx?id=13255

  3. 管理者権限で Windows コマンド シェル (Start-Execute-"cmd") を開き、ダウンロードしたセットアップ ファイルを次のように実行します。 AccessDatabaseEngine_X64.exe /passive

  4. regedit を開始し、次のキーに移動しますHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPath。値の名前を次のように変更しmso.dllますmso.dll.rename

  5. また、インポートする XLSX ファイルが保存されているフォルダーの完全な権限をすべてのユーザーに付与する必要がありました (マルチユーザー コンピューターや共有フォルダーではこれを行わないでください)。

  6. Windows システム コントロールを開きます。管理ツール、サービスに移動し、MS SQL Server サービスのプロパティを開きます。[ログオン] で [ローカル システム アカウント] を選択します。MS SQL Server を保存して再起動します。

  7. SQL Server Management Studio を開き、MS SQL Server インスタンスに接続して、次の T-SQL ステートメントを実行します。

    EXEC sp_configure 'show advanced options', 1
    RECONFIGURE
    GO
    EXEC sp_configure 'ad hoc distributed queries', 1
    RECONFIGURE
    GO
    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    GO
    EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
    GO
    
  8. 次の T-SQL ステートメントで確認します。

    SELECT * FROM OPENROWSET( 'Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;Database=C:\YourFolder\File.xlsx', 'SELECT * FROM [Sheet1$]');
    
于 2017-08-29T14:17:51.030 に答える