2009-08-07 81 views
0

我需要在轉換中使用二進制數據作爲整數,並做一些操作,但如何做鑄造?我嘗試了許多SSIS數據類型,但沒有運氣。順便說一下,我不想使用腳本任務。如何在SSIS中將CAST SQL Server類型varbinary轉換爲整數?


[更新下面部分]

的數據是存儲在CDC功能fn_cdc_get_net_changes的__ $ update_mask列中的值。以下是我試圖在SSIS中投,

(__$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 CAST不是。希望這給了我的查詢足夠的信息。

+0

什麼是症狀?當你說它不起作用時,你的意思是什麼? – 2009-08-10 08:21:48

+0

對於我嘗試的大多數SSIS數據類型,CAST失敗。 – Faiz 2009-08-10 13:59:09

回答

0

__ $ update_mask列的類型爲varbinary,長度爲128個字節。沒有辦法將它轉換成INT或BIGINT(不丟失信息),因爲轉換目標大小分別是4和8個字節。儘管我只想考慮128字節中的前8個字節。但是,我再次找不到任何支持的數據類型或在SSIS中投射可以完成這項工作的數據類型。雖然這可以在數據庫引擎中完成,並在稍後引入SSIS。

相關問題