通过SSIS

时间:2017-11-02 14:03:21

标签: sql sql-server tsql stored-procedures ssis

我有这个存储过程:

CREATE PROCEDURE [dbo].[sp_Carrier_Scan_Compliance]
     (@RETAILERID  INT OUTPUT,
      @SYSTEM_ID  VARCHAR(10) OUTPUT)
AS
BEGIN
    SET @RETAILERID = 2
    SET @SYSTEM_ID = 'DMASOS'
    ...
END

我在控制流程中使用执行SQL任务创建了一个SSIS包。

这些是我的执行SQL任务编辑器设置:

enter image description here

这是我的变量设置:

enter image description here

这些是我的参数映射设置:

enter image description here

当我运行SSIS包时,出现错误:

  

错误:执行SQL存储过程中的0xC002F210(从' BI-Datatrunk'源表复制数据)任务,执行SQL任务:执行查询" exec = [sp_Carrier_Scan_Compliance]?输出,? Ø..."因以下错误而失败:"' ='。"附近的语法不正确。可能的失败原因:查询问题," ResultSet"属性设置不正确,参数设置不正确或连接未正确建立。

     

任务失败:执行SQL存储过程(从' BI-Datatrunk'源表复制数据)任务
  警告:Carrier_Scan_Compliance_SP上的0x80019002:SSIS警告代码DTS_W_MAXIMUMERRORCOUNTREACHED。执行方法成功,但引发的错误数(1)达到允许的最大值(1);导致失败。当错误数达到MaximumErrorCount中指定的数量时,会发生这种情况。更改MaximumErrorCount或修复错误。

我不确定我错过了什么。

请帮帮我。

由于

1 个答案:

答案 0 :(得分:2)

上一个错误的关键部分是

  

对象上的EXECUTE权限被拒绝   'sp_Carrier_Scan_Compliance',数据库'DATAK',架构'dbo'。“

您需要为执行Proc

的SQL用户分配EXECUTE权限
USE DATAK
GO
GRANT EXECUTE ON sp_Carrier_Scan_Compliance TO <sql user>
GO