2013-12-10 43 views
4

我正在工作的是SSIS,並希望從PostgreSQL數據庫上的函數中選擇一個值。 (這個SSIS包從PostgreSQL數據庫檢索數據以便處理成數據集市,這裏的功能只是在PostgreSQL數據庫的表格中設置一個狀態標誌。)價值不符合ssis的預期範圍...呵呵?

函數返回一個單獨的字符('Y'或'N')。我正在用SQL Task執行它,發出語句'select edw_processing_start_process from;'。

該語句有效,因爲該標誌在PostgreSQL數據庫上成功切換。但是SQL Task返回了這個問題標題中的錯誤。 (我搜索了這個錯誤,發現了很多參考資料,但沒有一個與這種確切的情況有關......我想它出現在很多微軟工具中。)

SQL Task的ResultSet是設置爲單行,該變量設置爲字符串數據類型。除此之外,我不知道發生了什麼。

感謝,--sw

+0

首先嚐試捕獲您的返回值作爲對象(即ADO記錄集)而不是字符串,並查看它是否執行OK。也許PostgreSQL元數據定義的字符串不符合字符串的SSIS定義。甚至可能退後一步,根本沒有捕獲結果,只是爲了驗證問題出在哪裏。 –

+0

我正在做類似的事情,它使用PGNP,但使用psqlodbc作爲它失敗的驅動程序。如果我知道了,我會在下面發表一個答案。 – influent

回答

4

不知道如果你使用相同的驅動程序(psqlodbc),而是由某種奇蹟我想通了,如果我使用「1」作爲結果名稱,而不是返回的名稱列,它就像一個魅力。

+0

他們最好的答案! – mhn

0

剛剛遇到了這個問題,將輸出外部列類型從DT_WSTR更改爲DT_STR似乎已經解決了我的問題。不知道爲什麼它使用DT_WSTR多年來工作,現在不,但嘿不管。

相關問題