函数 "REVERSE" 不支持参数编号 1 的数据类型 "DT_I4"

The function "REVERSE" does not support the data type "DT_I4" for parameter number 1

我正在尝试为 visual studio 中的一个变量创建表达式,但我收到此错误消息:

The function "REVERSE" does not support the data type "DT_I4" for parameter number 1. The type of the parameter could not be implicitly cast into a compatible type for the function. To perform this operation, the operand needs to be explicitly cast with a cast operator.

Evaluating function "REVERSE" failed with error code 0xC0047089.

这是我的代码:

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

请帮忙

错误信息很清楚,你正在做 FINDSTRINGREVERSE

REVERSE 的参数需要是字面值和 FINDSTRING returns 一个整数 (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)