如何在SSIS中将SQL Server类型varbinary强制转换为整数?
我需要在转换中使用二进制数据作为整数并进行一些操作,但是如何进行转换呢?我尝试了许多SSIS数据类型,但没有成功。顺便说一下,我不想使用脚本任务 [下文更新部分] 数据是存储在CDC函数fn_CDC_get_net_changes的_u$update_mask列中的值。以下是我在SSIS中尝试的演员阵容如何在SSIS中将SQL Server类型varbinary强制转换为整数?,ssis,types,type-conversion,Ssis,Types,Type Conversion,我需要在转换中使用二进制数据作为整数并进行一些操作,但是如何进行转换呢?我尝试了许多SSIS数据类型,但没有成功。顺便说一下,我不想使用脚本任务 [下文更新部分] 数据是存储在CDC函数fn_CDC_get_net_changes的_u$update_mask列中的值。以下是我在SSIS中尝试的演员阵容 (__$operation == 4) && (((DT_I8)__$update_mask & @[User::SCDColumnNumber]) > 0) 相
(__$operation == 4) && (((DT_I8)__$update_mask & @[User::SCDColumnNumber]) > 0)
相应的TSQL代码将是
SELECT
CASE WHEN (CAST(__$update_mask as int) & 16)>0 THEN 1 ELSE 0 END ScdType2,
CAST(__$update_mask as int) Change,
* FROM
cdc.fn_cdc_get_net_changes_dbo_Transactions
(sys.fn_cdc_get_min_lsn('dbo_Transactions')
,sys.fn_cdc_get_max_lsn(),'all with mask')
这很好用。但SSIS演员阵容并非如此。希望这能提供有关我的查询的足够信息。更新掩码列的类型为varbinary,长度为128字节。由于转换目标大小分别为4字节和8字节,因此无法在不丢失信息的情况下将其转换为INT或BIGINT。虽然我只想考虑128字节的前8字节。但同样,我在SSI中找不到任何支持的数据类型或强制转换可以完成这项工作。尽管这可以在DB引擎中完成,并在稍后提交给SSIS。症状是什么?你说它不起作用是什么意思?我尝试过的大多数SSIS数据类型的强制转换都失败了。