2013-07-05 219 views
0

我有一個SSIS包,它從數據庫表中獲取數據並將其輸出到csv文件中。在這個過程中的某個時刻,有一個執行SQL任務來檢索文件名(一個類型和一個序列號,然後用它來創建文件名,例如CAR,12會使C0000012.csv。我需要能夠要做到這一點,以避免在包運行時表中沒有汽車的情況下出現錯誤SSIS執行SQL任務輸出變量

爲此,我做了一個sql包,它將檢查計數, 。然後要麼返回「car」和是否有數據或「NUL」和0,如果心不是序列號我有被映射作爲輸出參數的兩個變量:

 NAME     | Direction| Type | Name | Size 
     User::DownloadFileType | Output | String | TYPE | 3 
     User::DownloadFileNum | Output | int32 | SEQN | 8 

當運行包我保持得到錯誤:

The type of the value being assigned to variable "User::DownloadFileType" differs from the current variable type.

我已經在線尋找幫助,似乎有一個問題,試圖將VARCHAR(MAX)加載到SSIS字符串值中,我的數據庫字符串的類型爲VARCHAR2(PL SQL),但我設置了最大尺寸爲3整個包裝,仍然沒有運氣。

我認爲這個問題可能是因爲它是VARCHAR2類型,但我不確定如何使它與SSIS兼容。任何幫助你可以提供將不勝感激。

謝謝你,史蒂夫

回答

1

return 'CAR' and the sequence number if there is data or 'NUL' and 0 if there isnt

字符串類型的變量不能在SSIS被分配NULL值。改爲分配一些空字符串值。

投的VARCHAR2類型的返回字符串值在SELECT語句爲varchar(3)

eg. select cast('CAR' as varchar(3)) from dual

+0

我沒有分配一個NULL值,我被分配「NUL」爲標誌的字符串。 .. –

+0

我認爲這是您的文章中的錯字,您提到的錯誤是由於上述提及的原因 –

+0

在您的select語句中將類型varchar2的返回字符串值轉換爲varchar(3),例如。選擇cast('CAR'as varchar(3))from dual –

相關問題