SSIS:传递派生列变量来执行sql任务

时间:2016-04-14 16:59:07

标签: sql-server parameters ssis

我按照这里提到的bilinkc的帖子

how to load extracted file name into sql server table in SSIS

我在For Each容器中的数据任务中将此提取的文件名用在名为FileName的变量中。但是当我想在连续的执行SQL任务中使用相同的变量时,它会抛出错误

[执行SQL任务]错误:执行查询“

INSERT INTO HOURLY_DATA                ...“失败并出现以下错误:”多步OLE DB操作生成错误。检查每个OLE DB状态值(如果可用)。没有工作。“。可能的失败原因:查询问题,”ResultSet“属性设置不正确,参数设置不正确或连接未正确建立。

参数设置:数据类型为VARCHAR参数名称为0,参数长度为1000.

无论如何都可以解决这个错误。当我检查其他帖子时,他们说它与TEXT长度错误有关,但我无法理解我的方案。

完整查询如下:

这是完整的查询:

INSERT INTO HOURLY_DATA                   (UNIQUE_NUM,NAME,FILE_NAME,USER_NAME)                SELECT DISTINCT UNIQUE_NUM,'MANUS',?,'MENON'                 来自MY_TABLE                 在哪里UNIQUE_NUM不是空

对于参数变量,我定义了一个包级别变量,它取决于这个表达式:

REPLACE(REPLACE(REPLACE(@ [User :: varFilePath],@ [User :: varSourceFolder],“”),“\”,“”),“我的文件”,“”),“。 XLSX”, “”)

但是当我评估这个表达时,没有任何事情发生。这个变量可能是问题吗?

提前感谢您的时间和帮助。

0 个答案:

没有答案