2013-07-26 62 views
2

我正在努力處理sql二進制(8)數據類型。 無論我嘗試用它來做SSIS包裏面,它總是失敗的一個錯誤:「無效的投規範」SSIS處理SQL二進制數據類型

讓我來描述一下我綁在細節做:

  1. 我有一個行,我分配給控制流中的SQL任務中的變量。

    select max(LastRowVersion as bigint) as MinRV from MyTable

    LastRowVersion是數據類型的二進制的(8)。

2.然後我將結果分配到變量 - 用戶:: MaxRowVersion

如果我配置MaxRowVersion是字符串或對象數據類型的,那麼這部分工作正常。

3.Next我打開一個數據流任務具有以下select語句:

select fields from AnotherTable where LastRowVersion > ?

和分配User::MaxRowVersion到查詢。 再次,LastRowVersion是表中的數據類型binary(8) - AnotherTable。 這裏是我得到我上面提到的錯誤。

我曾嘗試過各種玩DT_BYTES演員類型的演員表演User::MaxRowVersion變量,但它失敗了。 我也讀過,有可能打開一個C#腳本任務來處理它,或者動態SQL可以提供幫助,但我寧願保持解決方案儘可能簡單,如果可能的話,不要使用腳本。

感謝您的幫助,

達尼

回答

0

你試過嗎?

  • 保持MaxRowVersion作爲斯汀數據類型
  • 角色在SQL語句

實施例可變參考:

" 

SELECT my_field 
FROM my_table 
WHERE LastRowVersion > CAST('" + @[User::MaxRowVersion] + "' as MyDataType); 

"