功能" REVERSE"不支持数据类型" DT_I4"参数编号1

时间:2018-06-15 10:15:45

标签: visual-studio variables visual-studio-2015 ssis expression

我试图在visual studio中为我的一个变量做一个表达式,我得到这个错误说:

  

功能" REVERSE"不支持数据类型" DT_I4"对于   参数编号1.参数的类型不能隐式   转换为函数的兼容类型。执行此操作   操作,操作数需要使用强制转换显式转换   操作

     

评估功能" REVERSE"失败,错误代码为0xC0047089。

这是我的代码:

SUBSTRING(@[User::FileName] , 1, REVERSE(FINDSTRING(@[User::FileName],"_", 1))) 

请帮忙

1 个答案:

答案 0 :(得分:1)

错误信息非常清楚,您正在REVERSE FINDSTRING。{/ p>

REVERSE的参数需要是文字值,FINDSTRING返回一个整数(DT_I4)。

我相信你想以另一种方式执行它,首先REVERSE字符串,然后计算下划线的位置,以便SUBSTRING可以将字符带到那一点:

SUBSTRING(@[User::FileName] , 1, FINDSTRING(REVERSE(@[User::FileName]),"_", 1))

修改:尝试此操作以检索上一个_之后的最后一部分。

SUBSTRING(
    @[User::FileName], 
    LEN(@[User::FileName]) - FINDSTRING(REVERSE(@[User::FileName]),"_", 1) + 2,
    LEN(@[User::FileName]) 
        - (LEN(@[User::FileName]) - FINDSTRING(REVERSE(@[User::FileName]),"_", 1) + 2) 
        - FINDSTRING(REVERSE(@[User::FileName]),".", 1) + 1)