我看到一個問題,與在那裏我發現了以下錯誤的SSIS(SQL Server 2005中)工作:SSIS連接錯誤 - 文件名無效
The file name "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\UNC\FOLDERS\filename.xls;Extended Properties="EXCEL 8.0;HDR=YES";" specified in the connection was not valid.
我周圍本網站和其他搜索指示這是最常見的原因是權限錯誤,但我不相信在這種情況下就是這種情況,因爲任何數量的文件已經通過此實現成功處理。
這裏是設置的概述:
供應商的FTP文件告訴我們,Windows服務回升,拷貝到一個臨時目錄每天的基礎上,然後調用這些文件SSIS作業。每個供應商有兩個SSIS作業用於快照數據饋送,一個用於交易清單。
目前在整個過程中有超過50個不同的SSIS工作。除了在腳本任務步驟中因上述錯誤而失敗的一個特定事務作業之外,它們都工作。文件至少每天至少帶有獨特的文件名,以便我抓住作業,根據源目錄確定供應商,然後根據文件名中的指示器確定文件類型,以確定要調用哪個SSIS作業。由於文件名稱每天都在改變,當服務調用SSIS作業時,我會傳遞一系列參數,包括供應商文件名,以便它可以正確連接到文件。
每個作業都從腳本任務開始,爲腳本的其餘部分設置必要的變量值。例如,由於供應商文件名隨每次運行而改變,因此我通過SSIS變量集合傳入供應商文件名,然後使用該文件名將數據源的連接字符串設置爲字符串中的數據源。在腳本任務的這一點上發生上述錯誤。這裏就是發生錯誤的任務腳本代碼:
Dts.Connections("Transactions File").ConnectionString = _
Dts.Variables("ConnectionString").Value.ToString().Replace("##FILE_PATH##", sourceFilePath)
ConnectionString中值是:供應商= Microsoft.Jet.OLEDB.4.0;數據源= ## FILE_PATH ##;擴展屬性=「EXCEL 8.0; HDR =是」; sourceFilePath是處理目錄中的供應商文件的完整UNC路徑
我不相信這是一個權限錯誤,因爲所有其他文件都經過此過程(使用相同的保存目錄進行處理)正在工作。它不應該是文件不存在的問題,因爲它再次遵循與每個其他文件相同的過程,並且我已經驗證文件正確地結束在正確的目錄中。我還認爲連接字符串可能太長,但文件路徑最多爲109個字符,即使使用較短的(< 90)完整路徑,也會發生相同的錯誤。
還有什麼你能想到的我想看看?謝謝你的幫助。
是否有您使用腳本來修改ConnectionString屬性,而不是僅僅使用它的表達特別的原因?我不相信這是你的問題,但可能會爲你節省一些維修時間。我相信所提供的假路徑\ UNC \ FOLDERS實際上表示爲\\ UNC \ FOLDERS – billinkc
在回答您的第一個問題時,我學習了SSIS,這是我當時想出的方法。在回答你的第二個問題時,是的,當我創建這篇文章時,這是一個錯字。謝謝。 –
有機會嘗試我的答案?仍然有問題? – billinkc