ssis 到别的表查找临时变量值

原文:ssis 到别的表查找临时变量值

etl过程过,往一个数据库表插入数据,插入的值往往需要到另外一个数据库读取。例如下面的客户跟踪,需要一个“项目ID”,这个ID需要到另一个数据库的一张表查找,找到后返回给“客户跟踪”任务流。

执行SQL任务“原项目ID”的配置如下图:
 

sql语句是:

if exists(SELECT * FROM dbo.TB_BBProject WHERE (PJ_Name = @PJ_Name))
     SELECT top 1 PJ_ID FROM dbo.TB_BBProject WHERE (PJ_Name = @PJ_Name);
else
     select –1
如果直接写:SELECT top 1 PJ_ID FROM dbo.TB_BBProject WHERE (PJ_Name = @PJ_Name),当这个查询没有数据返回的时候,ssis就会报道如下错误:
            无法为单行结果类型填充结果列。查询返回了一个空的结果集

这是因为“结果集”设置成单行,ssis就要求必须返回一行,不允许空行。
保存结果的变量“原项目ID”的数据类型需要设置成“Object”,在其他地方使用的时候,ssis会自动转成int类型,见下图:
在“OLE DB 源数据源”中使用“原项目ID”

“OLE DB 源”需要的查询参数需要使用“select * from tableName where fieldName=?”,只有ADO NET源才可以使用@参数名但是感到奇怪的是“ADO NET 源”(如下图)查询居然不可以设置查询参数:

时间: 2024-08-01 22:45:04

ssis 到别的表查找临时变量值的相关文章

平台内置业务表变量值设置

今天在构建一个功能的时候需要用到平台内置业务表:组织机构:在配置的时候提醒是否包含工作组,按照提示设置后,在运行过程中发现没有效果,这是什么原因呢? 原来下图中这里并不是设置业务表变量值的地方: 平台内置业务表变量值需要我们在窗体中通过代码进行设置,具体如下:通过平台智能向导--调用设置字段他表变量值的方法 如何查看内置业务表的变量名是什么呢?请看下图: 原文地址:http://bbs.delit.cn/thread-813-1-1.html 转载请注明出处: 撰写人:度量科技http://ww

不使用临时变量 交换两个变量值

不使用临时变量 交换两个变量值1.$a = $a+$b;$b = $a-$b;$a= $a-$b; 2.list($a, $b) = array($b, $a); 3. $a = $a ^ $b;$b = $a ^ $b;$a = $a ^ $b;

不使用临时变量交换两个变量值

题目:不使用临时变量交换两个变量值 分析:使用加.减.乘.亦或(aba==b),四种方法分别如下: //方法一:利用加法 int Swap3(int *x, int *y) { *x = *x + *y;//*x是二者和 *y = *x - *y;//*y是*x *x = *x - *y;//*x是*y } //方法二:利用减法 int Swap1(int *x, int *y) { *x = *x - *y;//*x是二者差值 *y = *x + *y;//*x是*y *x = *y - *x

ORACLE获取SQL绑定变量值的方法总结

  本文总结一下ORACLE数据库中如何获取SQL绑定变量值的方法,在SQL优化调优过程中,经常会用到这方面的知识点.在此梳理.总结一下,方面日后查找.翻阅. 方法1:查询V$SQL V$SQL视图中的BIND_DATA字段用来存储绑定变量的值,但是从这个视图查询绑定变量的值,有很大的局限性: 1: 它的记录频率受_cursor_bind_capture_interval隐含参数控制,默认值为900,表示每900秒记录一次绑定值,也就是说在900内,绑定变量值的改变不会反应在这个视图中.除非你调

JavaScript交换两个变量值的七种解决方案

前言 这篇文章总结了七种办法来交换a和b的变量值 1 2 var a = 123; var b = 456; 交换变量值方案一 最最最简单的办法就是使用一个临时变量了,不过使用临时变量的方法实在是太low了 1 2 3 4 var t; t = a; a = b; b = t; 首先把a的值存储到临时变量中,然后b赋值给a,最后拿出临时变量中的a值赋给b,这个办法是最基本的了 交换变量值方案二 下面的方案都不会有临时变量,我总结了一下,其实不使用临时变量的思路都是让其中一个变量变成一个a和b都有

iOS中绑定tableview后,变量值消失的问题

好吧,标题就以最通俗的语句命名,估计百度收录的时候,大家查找的时候会更加的方便. iOS新手,这个问题着实调试了好长时间! 由于上手就开始做大的项目,也没时间从基础做起,相信大多数小公司的开发者都是这种模式.因此很多问题都产生自很基础的错误. 项目使用mvc结构,在异步读取完数据后,NSArray中model的数据就丢失了,专业点就是内存释放了,只剩下内存地址了. 可能大家的情况和我不同,所以解决方法也不一定相同. 项目服务端是asp.net webservice,使用AFNetworking读

C#交换两个变量值的多种写法

在学习.Net/C#或者任何一门面向对象语言的初期,大家都写过交换两个变量值,通常是通过临时变量来实现.本篇使用多种方式实现两个变量值的交换. 假设int x =1; int y = 2;现在交换两个变量的值. 使用临时变量实现 static void Main(string[] args) { int x = 1; int y = 2; Console.WriteLine("x={0},y={1}",x, y); int temp = x; x = y; y = temp; Cons

解决Myeclipse在调试(debug)时无法显示变量值问题

解决Myeclipse在调试(debug)时无法显示变量值问题 突然发现myeclipse在调试时当鼠标放在变量上面时无法显示变量值了 ctrl+shift+D居然提示cannot be resolved 网上查到的最多的方法是 Window->Preferences->Java->Editor->Hovers 将[Variable Values]选择就可以,假设[Combined Hover]已经勾选,取消并勾选[Variable Values] 这样的方法适用的应该不是我的这样

C语言如何交换两变量值?5大方法告诉你!

写在前面: C语言中交换两个变量值的操作经常会用到,也有不少人提问诸如不用临时变量怎么交换两个变量值的问题,今天我们在这里进行一个总结,也算是对这个问题的统一回复,我一共总结了5种方法(名字都是我自己取的,不当之处还请批评指正),希望大家看完有所收获. 1.临时变量法 方法解释:采用临时变量的方法,作为中间过渡,这是最简单也是大家最容易想到的方法,此法在各种场合应用极多,应该熟练掌握. #include<stdio.h> int main(void) { int a=1,b=2,tmp; tm