我想在SSIS中执行select语句,但是这个select语句从另一个组件中获取一个参数,并且该select语句的列必须用作其他组件的输入.
例如:
select id from myTable where name = (column from a prevIoUs component).
并且上述select语句的“id”内容应该是未来组件可以使用的列.
如果我添加一个“OLE DB命令”组件,它允许我引用其他组件作为输入,但我无法从中生成输出.似乎OLE DB Command组件仅用于更新/插入语句?
关于如何做的任何想法?
解决方法
实际上,这是Lookup的一个案例.看来你想按名称进行查找并返回id.很简单.以下是我创建此示例的方法:
>将数据流任务拖到设计图面上.双击它切换到它.
>为我的数据库创建连接管理器
>拖到设计图面上:
> OLE DB源
>查找转换
> OLE DB目标
>将源连接到目标查找.这是我们想要到达目的地的“查找匹配输出”.见图1.
>配置源.我的源表只有id和name列.
>配置查找
>常规选项卡:使用OLE DB连接
>“连接”选项卡:指定相同的连接,但使用“查找”表.我的查找表只是id和name,但名称是唯一的,所以它作为查阅列更有意义.
>在列选项卡上,配置要映射到name的名称,并将“id”作为输出.将查找操作配置为“添加新列”,并将该列命名为“lookupId”.见图2.
>忽略其他两个标签
就这样.对于源中的每一行,name列将用于匹配查找表的name列.每个匹配都会将其id列作为新的lookupId列.所有三列都将前往目的地.
图1:
图2:
图3: