【问题标题】:Execute SQL Task on SSIS 2005. ADO.NET connection type and Stored Procedure Input Parameter. Not working. Syntax error在 SSIS 2005 上执行 SQL 任务。ADO.NET 连接类型和存储过程输入参数。不工作。语法错误
【发布时间】:2010-09-01 20:39:45
【问题描述】:

我在 SSIS 2005 上执行 SQL 任务。ADO.NET 连接类型和存储过程输入参数。不工作。语法错误 我阅读了一些文档和博客,但它对我不起作用。这就是我对 Execute sql 任务 (ADO.NET) 的 SQL 语句所拥有的内容

EXEC StoredProcedureName @ParameterName =

它在我尝试的不同语法上给出了不同的错误。全部失败 查询出现问题,“ResultSet”属性设置不正确,参数设置不正确,或连接未正确建立。

我尝试了所有组合,例如 EXEC StoredProcedureName @ParameterName = ? 存储过程名称? 存储过程名称 @ParameterName = ? 等等等等都是徒劳的

我检查了参数类型和它的罚款

如果我将连接类型更改为 OLE DB,则相同的设置会起作用。但我不想要 OLE DB 并想将其更改为 ADO.NET

我按照 Microsoft 规范进行了尝试,但也没有用 根据微软 如果 IsQueryStoredProcedure 设置为 False,则执行 uspGetBillOfMaterials @StartProductID, @CheckDate

我尝试更改 IsQueryStoredProcedure 属性上的所有组合也是徒劳的 我在参数映射上正确映射了参数名称、顺序和变量仍然没有运气

正如我所说,它适用于 OLEDB,但即使在更改语法后也不适用于 ADO.NET。 请帮忙

我在 ADO.NET 上有另一个任务,它工作正常,因为它没有输入参数

【问题讨论】:

    标签: sql-server-2005 stored-procedures visual-studio-2005 ssis


    【解决方案1】:

    老问题,但万一它对某人有帮助:

    1. IsQueryStoredProcedure 设置为True

    2. 在 SQLStatement 中只写存储过程的名称:sp_MyStoredProcedure

    3. 在“映射”选项卡中,添加您的参数:

      Direction = input ; Name = @parameterName

    【讨论】:

      【解决方案2】:

      尝试将 IsQueryStoredProcedure 设置为 False,然后将 SqlStatement 设置为

      执行 MyStoredProcedure @MyParameter

      其中@MyParameter 是任务的参数映射部分中的参数名称,它引用包中的变量。此变量保存您要传递给存储过程的值。

      使用 ADO.NET 连接参数时应使用“@”表示法,使用 OLE DB 时应使用“?”符号。

      ADO.NET。执行 MyStoredProcedure @MyParameter OLE 数据库。执行 MyStoredProcedure 吗?

      请记住,虽然在使用 OLE DB 时,您应该使用 0、1、2、3 等引用参数名称(在参数映射中)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 2017-04-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多