SSIS package 更新 variable

在Package中声明一个variable,在package运行的过程中,SSIS如何update Variable?

第一种方法:使用 Script Task 来更新Variable的值

1,创建一个variable ,VariableName是VarCode,并将变量传递到脚本的ReadWriteVariables数组中。

2,在C#脚本中,SSIS提供两种方式访问变量,第一种方式比较简单,推荐使用。

复制代码
            //读写变量 第一种方式string VarName = this.Dts.Variables["User::VarName"].Value.ToString();int VarCode = int.Parse(this.Dts.Variables["User::VarCode"].Value.ToString());this.Dts.Variables["User::VarCode"].Value = 2;//读写变量 第二种方式 this.Dts.VariableDispenser.LockForRead("User::VarName");this.Dts.VariableDispenser.LockForWrite("User::VarCode");Variables vars=null;this.Dts.VariableDispenser.GetVariables(ref vars);string strName = vars["User::VarName"].Value.ToString();int iCode = int.Parse(vars["User::VarCode"].Value.ToString());vars["User::VarCode"].Value = 3;vars.Unlock();
复制代码

第二种方法:使用 Script  Component 来更新Variable的值

 1,创建变量

2,将变量传递到Script component中

3,使用C#脚本引用变量,在script component中引用变量有两种方式

3.1 使用变量名作为来引用变量

        int code = this.Variables.VarCode;//string name = this.Variables.VarName;//this.Variables.VarName = "New VarName";

在引用ReadWrite类型的变量时,可能会发生异常“在PostExecute之外不能锁定变量集合进行读写访问”,就是说,不能在PostExecute函数之外通过这种方式引用ReadWrite类型的变量,如果发生这种异常,只需要将引用ReadWrite类型的变量的代码放到PostExecute中就不会出错了。

3.2使用加锁方式来引用变量,这种方式能在PostExecute函数之外引用ReadWrite类型的变量

复制代码
复制代码
        this.VariableDispenser.LockForRead("User::VarCode");this.VariableDispenser.LockForWrite("User::VarName"); IDTSVariables100 vars = null; this.VariableDispenser.GetVariables(out vars); int iCode = int.Parse(vars["User::VarCode"].Value.ToString()); string strName = vars["User::VarName"].Value.ToString(); vars["User::VarName"].Value = "New VarName"; vars.Unlock();
复制代码
复制代码

第三种方法:通过Execute Sql Task 为变量赋值,通过Sql语句返回单行结果集,将结果集更新到接收数据的变量上。

Result Set属性:选择 Single Row

Sql Statement: 输入要赋值的sql语句  select 'ExecSqlCmd task' as Name, 2 as Code

Result Set选项卡:设置输出的单行结果和变量之间的映射关系

 

第四种方法:通过Execute Sql Task 为变量赋值,使用Sql赋值语句,将结果集更新到接收数据的变量上。

sql赋值语句主要有两种,select和set

declare @id intselect @id=1
set @id=1

创建Package变量

配置Execute Sql Task的属性

Result Set属性:选择 None

Sql Statement: 输入sql赋值语句  select ?='ExecSqlCmd task'

在Parameter mapping中配置Direction为Output

 

第五种方法:使用Expression Task为变量赋值

 

在Expression中输入赋值的Expression。

 

第六种方法:为变量设置初始值,在创建变量的Variables窗体中,在Value输入的值就是变量的初始值,也可以在Expression中,使用Expression为变量赋值

 

 

作者:悦光阴
出处:http://www.cnblogs.com/ljhdo/
本文版权归作者和博客园所有,欢迎转载,但未经作者同意,必须保留此段声明,且在文章页面醒目位置显示原文连接,否则保留追究法律责任的权利。
分类: SSIS 组件





本文转自悦光阴博客园博客,原文链接:http://www.cnblogs.com/ljhdo/p/4498149.html,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/294659.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

socket第三方库 AsyncSocket(GCDAsyncSocket)

为什么80%的码农都做不了架构师?>>> Socket描述了一个IP、端口对。它简化了程序员的操作,知道对方的IP以及PORT就可以给对方发送消息,再由服务器端来处理发送的这些消息。所以,Socket一定包含了通信的双发&#xff0c…

想给男友一个惊喜,没想到是这样的结局......

1 想给男友一个惊喜(via.澎湃新闻)▼2 花10w买了副画(素材来源网络,侵删)▼3 台北温馨一幕▼4 把土豆切成丁(素材来源网络,侵删)▼5 你为何如此自信?(素材…

Android之怎么隐藏EditText光标和自动显示键盘

不废话,先爆照 让EditText不现实光标 关键代码: android:focusable="true" android:focusableInTouchMode="true" 写这个父视图里面 下面是全部代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"…

基于事件驱动架构构建微服务第14部分:查询API

原文链接&#xff1a;https://logcorner.com/building-micro-services-through-event-driven-architecture-part14-query-api/在本教程中&#xff0c;我将展示如何构建一个查询API&#xff0c;使用命令查询职责分离(CQRS)模式在微服务架构中实现查询。读取模型的目标是构建一个…

​“北斗女神”徐颖,32岁成为中科院最年轻的博导!

全世界只有3.14 % 的人关注了爆炸吧知识来源&#xff1a;学术志被誉为“北斗女神”的徐颖研究员在32岁就成为了中科院最年轻的博士生导师&#xff0c;真是羡煞旁人。一分耕耘一分收获&#xff0c;我们要向为国家做出巨大贡献的科学家学习。徐颖、颜值、气质、才华、幽默集于一身…

通过jQuery源码学习javascript(三)

序承接上两篇继续写下去。我尽量把我明白的地方给大家说清楚。有些大家的提问我也有点搞不明白&#xff0c;如果有人能解答&#xff0c;再好不过了。疑问第一篇中有位博友提出了以下的问题&#xff0c;我也不太明白&#xff0c;如果有明白的&#xff0c;能否告知一、二。var st…

链表之单链表的反转总结

单链表的反转是常见的面试题目。本文总结了2种方法。 1 定义 单链表node的数据结构定义如下&#xff1a; class ListNode {int val;ListNode next;ListNode(int x) {val x;next null;} }2 方法1&#xff1a;就地反转法 2.1 思路 把当前链表的下一个节点pCur插入到头结点dummy…

封神!Win11内置杀软被评为免费最佳

微软 Windows Defender 预装在 Windows 10 和 Windows 11 操作系统上。根据最新报告显示&#xff1a;Windows Defender 是 2021 年最好的防病毒软件&#xff08;杀毒软件&#xff09;之一。近日&#xff0c;位于德国的 IT 安全研究机构 AV-TEST 发布了针对 Windows 10 操作系统…

redis协议

为什么80%的码农都做不了架构师&#xff1f;>>> 利用gdb调试redis-server 在客户端redsi-cli&#xff0c;输入 gdb在下面函数处打入断点&#xff1a; 执行read函数后&#xff0c;查看buf中的内容&#xff0c;如下&#xff1a; 可见&#xff0c;客户端发送的指令&am…

佛门重地,不适合搞这种事!!

1 快教教我&#xff01;▼2 佛门重地&#xff0c;不适合搞这种事&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼3 来自中国的圣诞老人&#xff08;素材来源网络&#xff0c;侵删&#xff09;▼4 有被内涵到&#xff0c;谢谢▼5 江山代有才人出&#xff08;素材来…

Git之如何解决sourceTree已经pull全部下来但是本地没有更新的问题

今天用sourceTree好奇怪&#xff0c;我pull下来了同事的代码&#xff0c;但是本地项目没有&#xff0c;如下图 日志上面是显示已提交了同事的代码。 然后下面是本地的UserDao.java文件 死活也找不到 解决方法&#xff1a; 我先是从git 上面clone一份代码下来&#xff0c; 发现这…

WPF关键帧动画

动画与关键帧的区别本章介绍关键帧动画之前, 首先需要讲解一下关于WPF当中基础动画与本章所讲的关键帧动画的区别。视频地址: WPF扩展合集_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili普通动画WPF基础动画当中, 我们熟悉的From/To/By驱动的动画, 主要在两个值之间创建过渡效果, 如下图…

Mac怎么不能拷贝文件到U盘

2019独角兽企业重金招聘Python工程师标准>>> 在日常生活中&#xff0c;我们常常需要把一些文件拷贝的U盘保存。但是一些使用MAC的用户&#xff0c;有时会遇到无法拷贝的情况。今天我们就来给大家介绍介绍MAC怎么不能拷贝文件到U盘&#xff0c;以及面对这种情况我们应…

最漂亮的女生

转载于:https://blog.51cto.com/6254695/1071754

dockerfile文件名_Linux云计算教程全套视频合集:Dockerfile详解(一)

我们可以把刚才的对容器的所有操作命令都记录到一个文件里&#xff0c;就像写更脚本程序。之后用 docker build 命令以此文件为基础制作一个镜像&#xff0c;并会自动提交到本地仓库。这样的话镜像的构建会变的透明化&#xff0c;对镜像的维护起来也更加简单&#xff0c;只修改…

Android之放大镜实现的两种方式

public class ShaderView extends View {private final Bitmap bitmap;private final ShapeDrawable drawable;// 放大镜的半径private static final int RADIUS 80;// 放大倍数private static final int FACTOR 3;private final Matrix matrix new Matrix();public ShaderV…

他把数学书当小说看,初中没毕业却敢自荐中科大数学研究生,现在天才都这么狂妄了吗?...

全世界只有3.14 % 的人关注了爆炸吧知识他的脑子不太像人脑太聪明了今天&#xff0c;超模君来介绍一位看数学书像看小说一样的天才吧。他是初中没毕业&#xff0c;靠自学8年&#xff0c;便成为文 革后第一个被中科大破格录取的数学研究生。他只坚持做了10年数学研究&#xff0c…

微软RPA工具Power Automate Desktop

什么是RPARPA&#xff08;机器人流程自动化&#xff09;系统是一种应用程序&#xff0c;它通过模仿用户在电脑上的操作方法, 实现自动化操作流程,协助人在计算机、手机等计算设备中完成重复的工作流任务。Power Automate Desktop2021年3月2日&#xff0c;Microsoft终于宣布面向…

MS UC 2013-2-Deploy Microsoft Exchange Server 2013-4-Post-Installation Tasks

Blog:http://dynamic.blog.51cto.com MSN:LiuJinFengmsn.com QQ:316190099《MS UC 2013 -系列》博文&#xff1a;1&#xff09; 以TechNet Library为技术资料原型。2&#xff09; 以0-《统一沟通-微软-实战》为基础。3&#xff09; 以1-《统一沟通-微软-技巧》为参照。4&#x…

作为一个程序员,进步完全取决于自己

2015-12-14 我曾经在Hacker News网站上读过一篇帖子的评论&#xff0c;其中一个年轻的程序员说他们不想呆在那些只会让思想陈旧的老程序员离开而不是对他们再次培训的公司里&#xff0c;因为他明白&#xff0c;有一天他们也会这样。 也许这个人的本意是好的&#xff0c;但是他…