ssis - 对一个或多个所需参数没有给出值

问题描述:

我正在使用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

您需要映射该查询的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

就我而言,我的本地机器支持的日期格式为“MM-DD”,但是当我在服务器上部署它仅接受“DD-毫米”。所以,我在更改格式后解决了同样的问题。这可以帮助某人。