2014-04-22 23 views
1

我正在研究ssis包中的数据流任务,并且我已经多次遇到这个问题。这里有一个简单的例子...假设我有一个OLE数据库源,一个脚本组件作为转换,以及一个OLE数据库目标。ssis数据流正在设置数据类型

这是我的DB源查询(假设strValue的是MYTABLE varchar数据类型)

select strValue 
from mytable 
where isnumeric(strValue) = 1 

然后,我有一个脚本组件作为转换。 strValue是一个输入值。编辑脚本组件时,在“输入和输出”下,我展开输入变量,直到可以单击strValue。在“通用属性”下,它表示数据类型是DT_I4(这是一个我相信的整数,但我从来没有告诉过它)。

我决定改变我的DB源查询删除where子句所以它现在是

select strValue 
from mytable 

现在我要评估是否strValue的是在脚本组件,而不是数字。但是,当我尝试运行它时,它在到达转换之前失败,因为strValue并不总是一个整数。我想办法解决这个问题的唯一方法是删除原始的OLE数据库源和脚本组件转换,然后创建新的。

是否有一种简单的方法将列strValue映射为字符串,而不是ole db源中的整数? (因为我从来没有真正把它作为第一位的整数!)

回答

1
  1. 源对象上单击鼠标右键中的数据流
  2. 点击“显示高级编辑器...”
  3. 点击在名为“输入和输出属性”的最后一个选项卡上。

从那里你会看到“输入和输出:”框中的列。然后,您可以单击各个列并手动设置数据类型。