簡體   English   中英

SSIS 包停止使用錯誤代碼:0x80004005

[英]SSIS Package stopped working with Error code: 0x80004005

我在去年 12 月得到了這個 SSIS 包。 它只在星期五早上運行。 上周五,它失敗並顯示以下錯誤消息:

包:錯誤:SSIS 錯誤代碼 DTS_E_OLEDBERROR。 發生 OLE DB 錯誤。 錯誤代碼:0x80004005。 OLE DB 記錄可用。 來源:“Microsoft Access 數據庫引擎”Hresult:0x80004005 描述:“Microsoft Access 數據庫引擎無法打開或寫入文件 '\\ServerShare\IT\Reports\Export Templates\YoderReport.xlsx'。它已被另一個獨占打開用戶,或者您需要查看和寫入其數據的權限。”。

我檢查了其他幾個類似的問題,但他們沒有回答我的問題。 我已檢查以確保沒有人打開該文件。

有問題的文件是一個模板,它被復制然后填充,所以從一開始就沒有人應該打開它。

我嘗試將RetainSameConnection更改為True ,但沒​​有區別。 我已經在調試模式下運行它,它工作正常。

任何人都知道如何清除它以便它再次自動運行?

更新

經過更多測試后,該文件似乎正在獲取數據,但沒有被復制。 這是我的設置:

  • 我有一個File System Task ,它將模板從我的模板文件夾復制到我的導出文件夾。
  • 然后我有一個Data Flow Task
    • 從運行 SQL 腳本以提取數據的 OLE DB 源開始
    • 運行Data Conversion以將幾個字段更新為正確的格式
    • Excel Destination用於輸出。 (這是復制到導出文件夾的模板
    • 還有一個Flat File Destination以防萬一有任何錯誤
  • 然后使用另一個File System Task回到控制流,這個將文件從 Export 文件夾移動到共享驅動器上的最終目的地

當我從 VS 2015 運行它時,它可以正常工作並創建文件。 當我從 SQL 代理作業運行它時,它會失敗並顯示上述錯誤消息。 我唯一能想到的是,在Data Flow Task中, Excel Destination在最終File System Task嘗試復制文件之前沒有釋放文件? 但如果是這樣的話,為什么現在才開始發生呢?

我認為文件路徑存在問題,因為您可以看到文件路徑以一個反斜杠開頭:

\ServerShare\IT\Reports\Export Templates\YoderReport.xlsx

如果它在網絡上,也許它應該以雙反斜杠\\開頭

\\ServerShare\IT\Reports\Export Templates\YoderReport.xlsx

或者分區丟失 --> 路徑不完整

檢查文件路徑提供給連接管理器的方式(如果您使用表達式)


同樣基於this microsoft article ,有兩個可能的原因:

  1. 您必須有權讀取指定文件中的數據才能查看其數據。 要更改您的權限分配,請咨詢您的系統管理員或表或查詢的創建者。
  2. 您試圖以獨占方式打開指定的文件,但另一個用戶已經打開了該文件。

看起來是訪問問題。 確保代理服務帳戶正在以對網絡共享路徑的完全權限運行。 也許您可以嘗試在代理服務器上使用您的憑據。

此外,確保您的 Excel 目標連接字符串支持 .xlsx。

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\path\xxx.xlsb;Extended Properties="Excel 12.0;HDR=YES";

將“ Excel 12.0 ”更改為“ Excel 12.0 Xml ”將告訴提供程序以 .xslx 格式輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM