我正在尝试在ole db目标中为ole db源中的每条记录插入sp的结果,
sp返回记录集
我找到了这个how to call a stored procedure in SSIS
但我仍然看不到OleDb命令输出列中的输出列
这是我的sp:
create PROCEDURE [dbo].[GetData] (
@user varchar(50)
) AS
set nocount on
-- Publish metadata for ssis
if 1=0
begin
select '' x, '' y, '' z
end
declare @user_tmp table
(
x varchar(max),
y varchar(max),
z varchar(max)
)
insert into @user_tmp
select 'x1' x, 'y1' y, 'z1' z
select distinct * from @user_tmp
set nocount off
答案 0 :(得分:0)
是否可能获得insert语句的结果?尝试SET NOCOUNT ON。
http://msdn.microsoft.com/en-us/library/aa259204(SQL.80).aspx
答案 1 :(得分:0)
我没有尝试过表变量,但我知道如果使用临时表,SSIS将无法识别字段,而表变量可能具有相同的限制。但是,如果您使用CTE,它将识别字段。如果你可以转换为使用CTE,你的proc可能会起作用。
答案 2 :(得分:0)
使用 OLE DB目标 作为OLE DB源输出的目标(获取SP结果数据)。
在源和目的地之间添加ETL设计选择或要求(派生列,数据转换等)。
OLE DB命令 用于为每个传递行执行SQL,而不是创建数据流,例如,您需要逐行类型执行。