2017-03-14 64 views
0

嘗試運行SSIS程序包時出現此消息它使用OpenRowSet從使用OLEDB的Excel文件中提取數據。無法爲鏈接服務器「(null)」(在sproc/package/job中使用)初始化OLE DB提供程序「Microsoft.ACE.OLEDB.12.0」的數據源對象

我嘗試了一些StackOverflow上提到的不同的解決方案 - 包括:

  • 重新安裝OLEDB驅動

  • 檢查訪問臨時文件夾(我改變了Temp文件夾系統變量是一個特定的文件夾,而不是通過用戶名+動態獲得Everyone訪問該文件夾)

  • 在查詢窗口中檢查OpenRowSet查詢的執行情況/執行使用它的存儲介質/執行引用sproc的軟件包/執行引用上述軟件包的作業 - 在我的情況下,我可以讓查詢直接作爲查詢運行,我以管理員身份打開SSMS。

我可以攝製的問題在我們的珠三角環境(我們還沒有推出這麼珠三角有效的測試環境),但不是我們的STG環境。我進行了模式比較以確保跨環境的代碼庫相同。

我們使用oledb.12驅動程序(而不是oledb.16)並使用驅動程序來獲取元數據,然後導入實際記錄。

答案,幫助我(我無法找到任何地方在線...)低於

回答

0

在我發現我需要改變本地Windows用戶組成員結束。

SQL Server代理作業使用代理運行,該代理使用指向Windows帳戶的憑證。

在我們的例子中,STG windows賬戶是Administrator的一部分,但在PRD上它只在用戶(這是爲什麼模式比較在SQL級別沒有區別 - 這是一個Windows操作系統問題)。

儘管事實上錯誤是指oledb驅動程序,並且我們已將所有權限授予TMP ​​/ TEMP和文件位置,但我們需要更改計算機管理中的用戶訪問權限以解決問題。

這是我們2天中解決這個問題的3天,所以希望這可以幫助那裏的人!

相關問題