0

I'm trying to insert in a ole db destination the result of a sp for each record in an ole db source,

the sp returns a record set

I have found this how to call a stored procedure in SSIS

but i still can't see the outpout columns in OleDb Command Output Columns

here is my 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 
4

3 回答 3

0

是否可能得到插入语句的结果?尝试 SET NOCOUNT ON。

http://msdn.microsoft.com/en-us/library/aa259204(SQL.80).aspx

于 2009-03-24T22:47:47.550 回答
0
  • 一定要使用OLE DB 源来获取数据流中存储过程的输出。
  • 不要使用OLE DB 命令作为源。
  • 请使用OLE DB 目标作为 OLE DB 源输出的目标(获取 SP 结果数据)。

  • 在源和目标之间添加 ETL 设计选择或要求(派生列、数据转换等)。

OLE DB 命令用于对每一个经过的行执行一条 SQL,而不是创建数据流,例如您需要逐行类型执行。

于 2012-04-26T18:17:43.297 回答
0

我没有尝试过表变量,但我知道如果您使用临时表,SSIS 将无法识别字段,并且表变量可能具有相同的限制。但是,如果您使用 CTE,它将识别这些字段。如果您可以转换为使用 CTE,则您的 proc 可能会起作用。

于 2011-09-19T16:47:05.183 回答