Stored procedures 如何从oledb命令插入oledb目标
我试图在ole db目标中插入ole db源中每条记录的sp结果 sp返回一个记录集 我找到了这个 但我仍然无法在OleDb命令输出列中看到输出列 这是我的sp:Stored procedures 如何从oledb命令插入oledb目标,stored-procedures,ssis,oledbcommand,Stored Procedures,Ssis,Oledbcommand,我试图在ole db目标中插入ole db源中每条记录的sp结果 sp返回一个记录集 我找到了这个 但我仍然无法在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 @
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
它是否可能得到insert语句的结果?试着不计数
我没有尝试使用表变量,但我知道如果使用临时表,SSI将无法识别字段,并且表变量可能具有相同的限制。但是,如果使用CTE,它将识别字段。如果您可以转换为使用CTE,您的程序可能会工作 请使用OLE DB源在数据流中获取存储过程的输出。 不要将OLE DB命令用作源。 请使用OLE DB目标作为获取SP结果数据的OLE DB源输出的目标 添加ETL设计选项或需求派生列、源和目标之间的数据转换等 OLEDB命令用于为每个传递的行执行SQL,而不是创建数据流,例如,您需要逐行执行类型