Error code: 0x80004005 "The Microsoft Access databa

來源:互聯網
上載者:User

前兩天做了一個SSIS的Package,用來迴圈Excel然後倒入到資料庫。在開發環境可以正常工作,但是真正部署到SQLAgent後發現Job一直失敗。

開啟JobHistory看到下面的錯誤:

Description:SSISErrorCodeDTS_E_OLEDBERROR.AnOLEDBerrorhasoccurred.Errorcode:0x80004005.AnOLEDBrecordisavailable.Source:"MicrosoftAccessDatabaseEngine"Hresult:0x80004005Description:"TheMicrosoftAccessdatabaseenginecannotopenorwritetothefile''.Itisalreadyopenedexclusivelybyanotheruser,oryouneedpermissiontoviewandwriteitsdata.".

單單看上面的錯誤一般會認為是許可權不夠或者檔案被開啟。但是我看了一下檔案夾目錄根本沒有檔案,而且許可權也沒有問題。直接在開發環境運行也正常。

從網上查了一下發現雖然使用了變數來儲存Excel名稱,但是由於在設定ExcelConnectionManger的時候,指定了Excel檔案地址的),所以在部署完成後還是會去尋找這個檔案。

650) this.width=650;" title="2013-09-16 10-37-25.png" src="http://www.bkjia.com/uploads/allimg/131229/21304641R-0.png" alt="105736675.png" />

由於這個檔案被刪除了,SSISJob在啟動並執行時候找不到就報錯。

解決辦法:

在原始的Excel地址重新放一個Excel檔案,可以讓SSISJob找到。

另外可以考慮將DelayValidation的屬性調整為”Ture”這樣在啟動並執行時候驗證。

本文出自 “關注SQL Server技術” 部落格,請務必保留此出處http://lzf328.blog.51cto.com/1196996/1297609

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.