2015-02-10 93 views
0

我有一個SSIS任務,至少在過去的2年中運行良好。 IT將任務移至新服務器,現在正在拋出「變量名」User :: obEmailBody「無法在變量列表中找到」錯誤。無法在變量列表中找到SSIS變量

我將任務複製回我的桌面,運行良好。它只在服務器上失敗。我已驗證該變量是否存在並正在填充到我的測試環境(本地桌面)中。我不知道爲什麼它在服務器上失敗。該變量是一個system.object。

服務器上是否存在阻止創建system.object變量的設置?

+0

不,沒有會影響創建變量的服務器設置。編輯你的問題,以顯示一些表達式,如果它們存在,變量,電子郵件任務的配置等 – billinkc 2015-02-10 17:17:24

+0

在服務器中,變量是否存在?要檢查服務的SSIS中是否存在該變量,請轉到SSIS - > Variable,它將顯示一個變量列表... – 2015-02-10 17:26:41

+0

該變量用於保存記錄集目標。我將它填充到數據流任務中,然後使用Foreach ADO Enumerator在不同的數據流任務中讀取它。 – FlyFish 2015-02-10 17:32:48

回答

0

我最終刪除了Recordset Destination任務並重新創建。

1

我最近經歷過這種類型的問題,它有一個相當簡單直接的包,它從Excel電子表格中讀取數據,清理將數據傳遞到SQL存儲過程的數據,這些數據需要在夜間運行。該軟件包作爲SQL集羣環境中的SQL作業執行。在生產之後,我們發現其中一個節點沒有問題,而另一個節點給了我們錯誤「在變量列表中找不到變量名'User :: oInternalUser'」。這些節點唯一的區別在於SSIS組件是在服務器啓動後安裝的。經過幾個小時的問題排查後,我們決定向微軟開放一張票。經過近兩個資源的故障排除近4個小時後,我們得到以下建議。

  • 將SQL 2012升級到Service Pack 3.這應該修復SSIS組件內的任何損壞。
  • 安裝64位版本的Ace驅動器並以64位模式執行包。
  • 執行時間旅行跟蹤。儘管聽起來很有希望,但在這個過程中會發生的性能問題受到了警告,但性能受到影響的程度並不清楚,也不適合在生產環境中執行。

我們的解決方案是使用所有SSIS組件重建服務器,並安裝64位版ACE驅動程序以64位模式運行程序包。這已經解決了我們的問題。我們製作了服務器的副本,這兩臺重建服務器現在包含我們的集羣。