SSIS 什么是变量,什么是Expression 以及 在 Ole DB Source/OLEDB数据源中使用变量 Oracle

变量就是类似于编程语言中的变量,我们可以引用,可以赋值。

目前我所了解的方式,一个是在OLEDBSOURCE中参数变量不写死在控件里面,而是引用定义的控件值。

一个是在rowcount控件中对变量进行赋值,又或者在execute SQL task中进行参数绑定以及结果赋值

又或者在Script task中获取变量值或者修改变量值

注意各个变量在同一个 dtsx中 是否有不同Scope 同名的现象,这种极易造成赋值异常,从而显示失败。所以建议尽量使用不同名称的变量

 

第一个 新增变量

在 Control Flow 页面空白地方右击 Variables

 

 输入name,默认Scope是这个dtsx文件的名称,也就是说整个dtsx文件都能引用到这个变量。选择数据类型,输入值

 

 如果你想将变量只能在某个控件内使用,那么可以使用move Variable 按钮,调整控件使用的域

      

 

 

Expression稍后再讲,我们先将 OLE DB SOURCE 里面使用 变量

 或许有人在网上查询会发现,有的资料显示Data access mode 选择 SQL command,然后SQL里面直接 ? 。再点击右边的parameters即可。

这种方式连接的是SQLserver没问题,但是如果连接的Oracle则会报错,因此我们需要使用一种折中的方法

 

 首先  定义两个个变量

 

 

再次新增一个变量 sql,value先空着

 

 

选中这一行,在右边的property里面,找到Expression,打开

左侧我们能看到目前定义的变量,选中一个,鼠标左键按住不动,拖拽到下面。

多个变量可通过+ 加号拼接起来,也可以 在变量两边加单引号,

比如 @[User::sql1]  + "'" + @[User::sql2] +"'"

点击最下方按钮,会计算拼接后的值,我们可以检查是否是我们想要的

    

 

打开OLEDB SOURCE

选择 SQL command from variable。在Variable name 选择自己想要的变量,但是当我们点击预览的时候却报错了,软件提示不识别。

这个时候我们就要选中这个变量,在属性里面修改EvalueAsExpression 设为 TRUE,意思是计算表达式的值

修改后,再测试一下就能正常获取值

 

posted @ 2021-12-03 14:06  zq爱生活爱代码  阅读(313)  评论(0编辑  收藏  举报