我正在SSIS包中构建数据流任务,从OLE DB源(MS Access表)中提取数据,通过数据转换转换转换数据类型,然后将数据路由到OLE DB目标(SQL Server)表)。
我在目标表中有多个用于标志变量的BIT列,并且在将这些1/0列转换为(DT_BYTES,1)时遇到截断问题。从DT_WSTR和DT_I4转换为(DT_BYTES,1)会导致相同的截断,并且我已经验证它是通过数据查看器在该步骤中发生的。
看来我需要创建一个派生列,类似于下面链接的问题的答案中所描述的,但是我不需要转换为DT_BOOL,而是转换为(DT_BYTES,1),从DT_BOOL转换为DT_BYTES显然是非法的?
SSIS Converting a char to a boolean/bit
我已经多次尝试使用下面的逻辑变体创建派生列,但没有任何运气。我猜我需要在表达式的“1:0”部分使用Hex文字,但我无法找到有效的语法:
(DT_BYTES,1)([Variable_Name] == (DT_I4)1 ? 1 : 0)
我接近这个错误吗?我不能成为第一个需要将BIT数据插入SQL Server表的人,上面的过程对我来说似乎不必要的复杂。