ファイルディレクトリで解析される動的SQLをOpenRowSet(@Database)に使用しようとしています。今私は、Excelファイル用のハードコーディングされたディレクトリを持っています。最終的には、ユーザーのファイルを取得してSQLテーブルにインポートするアプリケーションを作成します。そこから私はマージされ、一致/不一致(正しく動作しています)です。これはパズルの最後の部分です。エラーメッセージがで私のファイルを探している理由を私は知らない "C:\ WINDOWS \ SYSTEM32 \"OpenRowSet内の動的SQLがTempテーブルに挿入されました
私の現在のエラーメッセージは次のとおりです。
OLE DBプロバイダ「Microsoft.ACE.OLEDB。 Microsoft Accessデータベースエンジンが 'C:¥WINDOWS¥system32¥C:¥Users¥GrimRieber¥Desktop¥isi test.xlsx'というオブジェクトを見つけることができませんでした。 'C:¥WINDOWS¥system32¥C:¥Users¥GrimRieber¥Desktop¥isi test.xlsx'がローカルオブジェクトでない場合は、ネットワーク接続を確認するか、サーバーに連絡してください管理者。 "
メッセージレベル7、レベル16、状態1、行1
リンクサーバー "(null)"のOLE DBプロバイダ "Microsoft.ACE.OLEDB.12.0"のデータソースオブジェクトを初期化できません。
コード:
declare @Database varchar(max)
select @Database = 'C:\Users\GrimRieber\Desktop\isi test.xlsx'
declare @sql varchar(Max)
select @sql = 'SELECT * FROM OPENROWSET(
''Microsoft.ACE.OLEDB.12.0'',
''Excel 12.0; Database= ' + @Database + '; HDR=YES; IMEX=1'',
''SELECT [Vendor],[VendorName],[Material],[MaterialName],[Supplier Stock Num],[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[Year]FROM [Data$]''
)'
IF OBJECT_ID('tempdb.dbo.#TempScorecardInventorySold', 'U') IS NOT NULL
DROP TABLE #TempScorecardInventorySold;
CREATE TABLE #TempScorecardInventorySold
(
[Vendor] [varchar](50) NULL,
[VendorName] [varchar](50) NULL,
[Material] [varchar](50) NULL,
[MaterialName] [varchar](50) NULL,
[Supplier Stock Num] [varchar](50) NULL,
[01] [nVarchar](50) NULL,
[02] [nVarchar](50) NULL,
[03] [nVarchar](50) NULL,
[04] [nVarchar](50) NULL,
[05] [nVarchar](50) NULL,
[06] [nVarchar](50) NULL,
[07] [nVarchar](50) NULL,
[08] [nVarchar](50) NULL,
[09] [nVarchar](50) NULL,
[10] [nVarchar](50) NULL,
[11] [nVarchar](50) NULL,
[12] [nVarchar](50) NULL,
[Year] [Int] Null
) ON [PRIMARY];
INSERT INTO [dbo].#TempScorecardInventorySold ([Vendor],[VendorName],[Material],[MaterialName],[Supplier Stock Num],[01],[02],[03],[04],[05],[06],[07],[08],[09],[10],[11],[12],[Year])
EXECUTE(@sql)
ありがとうございました! OPENDATASOURCEは私が持っていた問題を解決しました。私はちょうどデータ$の最後に目盛りを加えなければならず、それはすべてうまくいった。 –
素晴らしい!お役に立てて嬉しいです。しかし、興味深いのは、最初はうまくいきません。設定/バージョン項目である可能性があります。 – Parfait