2015-06-09 126 views
1

我正在使用SSIS 2008.我在sql任務編輯器 上收到錯誤查詢爲錯誤:執行查詢「SELECT SUBSTRING(?,8,2)+ SUBSTRING( ?,10,2)+ ...「失敗,出現以下錯誤:」沒有給出一個或多個必需參數的值「。可能的失敗原因:查詢問題,「ResultSet」屬性設置不正確,參數設置不正確或連接未正確建立。ssis - 對一個或多個所需參數沒有給出值

執行包含查詢

SELECT SUBSTRING SQL任務(?,8,2)+ SUBSTRING(',10,2)+ '20' + SUBSTRING(',10,2)AS File_Date

我已經選擇result_Set作爲SINGLE_ROW

的參數映射使用含有字段的名稱作爲 VAR_NAME:用戶:: File_Name_update 方向:輸入 數據類型:VARCHAR PARAMETER_NAME:0 Parameter_size:-1

的結果集我都加是: Result_Name:File_date 變量名:用戶:: File_date

所以在這裏我得到從更新輸入文件名substring.May文件的日期我知道我在做什麼處理上述情況錯誤?

+0

從你列出的你有三個參數,但你只映射其中之一。 – SFrejofsky

+0

不,在這裏,我用'+'作爲單行的連接...糾正我,我錯了 – user2941762

+0

如果那些是超過一行或三行,無所謂。在編譯器的眼中,你已經聲明瞭3個獨立和未連接的變量。由於oledb連接使用基於索引的參數映射,即使它們具有相同的值,您也必須明確映射變量的每個實例。 – SFrejofsky

回答

1

您需要映射該查詢的3個參數。如果你想映射只有一個,你可以這樣做:

declare @str varchar(max) = ? 
SELECT SUBSTRING(@str, 8, 2) + SUBSTRING(@str, 10, 2) + '20' + SUBSTRING(@str, 10, 2) AS File_Date 
+0

取決於你可能需要分離declare和set語句的sql server版本。我非常肯定,你可以在2008年開始合併聲明,但2005年將要求聲明被拆分。 – SFrejofsky

-1

就我而言,我的本地機器支持的日期格式爲「MM-DD」,但是當我在服務器上部署它僅接受「DD-毫米」。所以,我在更改格式後解決了同樣的問題。這可以幫助某人。

相關問題