我试图在visual studio中为我的一个变量做一个表达式,我得到这个错误说:
功能" REVERSE"不支持数据类型" DT_I4"对于 参数编号1.参数的类型不能隐式 转换为函数的兼容类型。执行此操作 操作,操作数需要使用强制转换显式转换 操作
评估功能" REVERSE"失败,错误代码为0xC0047089。
这是我的代码:
SUBSTRING(@[User::FileName] , 1, REVERSE(FINDSTRING(@[User::FileName],"_", 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)