我正在研究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源中的整数? (因为我从来没有真正把它作为第一位的整数!)