2017-10-12 138 views
0

我在Visual Studio中使用SSIS Import and Export Wizard創建了一個SSIS包,當我在那裏運行它時,它成功運行。基本上,SSIS包在我的SQL Server數據庫上運行一個sql查詢並將結果導出到Excel文件中。爲什麼我的SQL Server作業使用SSIS包失敗,但是同一個SSIS包在Visual Studio中成功運行?

我都裹那個包到SQL Server的工作和計劃​​它在特定時間運行。我注意到,它失敗,日誌文件顯示以下錯誤消息:

微軟(R)的SQL Server執行包實用工具版本12.0.5000.0 64位版權所有(C)微軟公司。版權所有。開始日期:下午4:44:00錯誤:2017-10-12 16:44:00.59代碼:0xC0016016源:ExpExcel描述:未能解密受保護的XML節點「DTS:Password」,錯誤爲0x8009000B「密鑰無效,用於指定州。」。您可能無權訪問此信息。存在加密錯誤時會發生此錯誤。驗證是否有正確的密鑰。結束錯誤錯誤:2017-10-12 16:44:00.68代碼:0xC0209303來源:ExpExcel連接管理器「DestinationConnectionExcel」描述:請求的OLE DB提供程序Microsoft.Jet.OLEDB.4.0未註冊。如果未安裝64位驅動程序,請以32位模式運行程序包。錯誤代碼:0x00000000。 OLE DB記錄可用。源:「Microsoft OLE DB服務組件」Hresult:0x80040154描述:「類未註冊」。結束錯誤錯誤:2017-10-12 16:44:00.68代碼:0xC00291EC源:刪除表SQL任務1執行SQL任務描述:無法獲取連接「DestinationConnectionExcel」。連接可能配置不正確,或者您對此連接可能沒有正確的權限。結束錯誤錯誤:2017-10-12 16:44:00.68代碼:0xC0209303來源:ExpExcel連接管理器「DestinationConnectionExcel」描述:請求的OLE DB提供程序Microsoft.Jet.OLEDB.4.0未註冊。如果未安裝64位驅動程序,請以32位模式運行程序包。錯誤代碼:0x00000000。 OLE DB記錄可用。源:「Microsoft OLE DB服務組件」Hresult:0x80040154描述:「類未註冊」。結束錯誤錯誤:2017-10-12 16:44:00.68代碼:0xC00291EC來源:準備工作SQL任務1執行SQL任務描述:無法獲取連接「DestinationConnectionExcel」。連接可能配置不正確,或者您對此連接可能沒有正確的權限。結束錯誤DTExec:程序包執行返回DTSER_FAILURE(1)。開始時間:4:44:00 PM完成:4:44:00 PM已用時間:0.219秒。程序包執行失敗。該步驟失敗,00:00:00,0,0 ,,,, 0

我有一個困難時期試圖找出如何調試這些錯誤,並尋找解決方案。如果我的SSIS包在Visual Studio(與SQL Server安裝在同一臺機器上)上運行良好,那麼爲什麼它作爲SQL Server作業失敗?

我還必須添加該機器上未安裝Microsoft Office。這可能是原因嗎?

+0

這是一個常見的問題上設置的步驟在32位SQL作業代理。該軟件包的ProtectionLevel是什麼?運行SQL Agent的用戶是什麼?你連接了什麼樣的數據庫?如果它是SQL Server,你能使用Windows身份驗證嗎? https://www.mssqltips.com/sqlservertip/2091/securing-your-ssis-packages-using-package-protection-level/ –

+0

運行SQL代理的用戶與正在運行的其他SQL作業的用戶相同。我正在使用SQL Server身份驗證,數據庫只是一個SQL Server數據庫。 – user3115933

+0

比較軟件包上的保護級別。這可能是用戶密鑰。 –

回答

0

你需要在你的SQL作業代理程序步驟使32位 - 如果這不工作,你需要安裝OLDB ACE驅動程序EXCEL

驅動程序鏈接:

Microsoft ACE Driver

正如其他人指出出。您的項目保護級別需要與程序包保護級別相同。您可以在包和項目的屬性下更改該屬性。

如何在一步 enter image description here

+0

感謝您提供解決方案。現在不在辦公室,所以我無法檢查這些問題。我會盡快查看並報告。 – user3115933

+0

關於如何在SQL作業代理步驟上啓用32位的操作,您有任何鏈接嗎? 我遇到過這篇文章,但我不知道這裏提到的步驟是否也與SQL Server 2012有關: https://support.microsoft.com/zh-cn/help/934653/how-to-use -the-64-bit-sql-server-agent-to-schedule-a-sql-server-2005 -i – user3115933

+0

好了 - 這裏有兩個_separate_問題。保護級別和32位超級驅動程序 –

0

當你創造了它可能得到建立與用戶密鑰保護級別包。這意味着任何敏感信息(密碼)都會使用您的用戶密鑰進行加密。通過擴展,這意味着只有你可以真正打開/運行包。您最好的選擇(我認爲最少的努力)是使用密碼加密軟件包,然後您可以在創建SQL Agent作業時指定該密碼。

+0

謝謝。我通過使用密碼更改了保護級別,並按照您提及的完全進行。作業仍然失敗並獲取相同的錯誤消息。 – user3115933

相關問題