我正在处理一个sql binary(8)数据类型。 无论我在SSIS包中尝试使用它,它总是失败并出现以下错误:“无效的强制转换规范”
让我来详细描述一下我要做的事情:
我在控制流程中的SQL任务中分配了一行变量。
select max(LastRowVersion as bigint) as MinRV from MyTable
LastRowVersion的数据类型为binary(8)。
2.然后我将结果分配给变量 - User :: MaxRowVersion
如果我将MaxRowVersion配置为String或Object数据类型,那么这部分工作正常。
3.接下来我用以下select语句打开数据流任务:
select fields
from AnotherTable
where LastRowVersion > ?
并为查询分配User::MaxRowVersion
。
LastRowVersion同样是表中的数据类型binary(8) - AnotherTable。
这是我收到上面提到的错误的地方。
我已尝试在DT_BYTES
变量的表达式中使用User::MaxRowVersion
强制转换类型进行各种类型的播放,但它失败了。
我还读到有可能打开一个C#脚本任务来处理它,或者动态SQL可以提供帮助,但我宁愿保持解决方案尽可能简单,如果可能的话没有脚本。
感谢您的帮助,
达尼
答案 0 :(得分:1)
你试过这个吗?
示例:
"
SELECT my_field
FROM my_table
WHERE LastRowVersion > CAST('" + @[User::MaxRowVersion] + "' as MyDataType);
"