5

我正在尝试调用一个简单的存储过程,它将以正常测试格式返回一个名称列表,所有这些都在一行中。我将两个参数传递给它,但无论我如何设置调用,无论是在 OLE DB 源代码编辑器中,还是在执行 SQL 任务中。我的 SQL 语句 b/ci 一定有一些我遗漏的东西不断出错。

我的 SQL 命令文本是

EXEC [dbo].[spGetEmployerIdCSV]  ?,  ?

我传递的参数完全按照它们在存储过程中声明的方式列出,@IDType并且@IDNumber映射到预定义的变量。

每次我尝试从任一任务类型运行它时,我都会得到一个

不支持 EXEC SQL 构造或语句。

在 SSIS 中运行存储过程的最佳方式是什么?

谢谢你。

4

5 回答 5

6

我无法重现您的问题。

我使用已经存在的 proc 创建了一个控制流。

控制流

我将执行 sql 任务配置为

执行sql任务

我的参数选项卡显示

参数映射

当我单击运行时,包变为绿色。

我最初的假设是您已经发出信号说您正在使用存储过程并且错误地提供了 EXEC 部分。我对 SSRS 做了类似的事情,但即使IsQueryStoredProcedure通过表达式将其更新为 True,我也无法重新生成您的错误消息。

如果您正在做其他/不同/除了我在执行 SQL 任务中显示的内容之外,您能否修改您的问题以描述该过程应显示的所有功能。

于 2013-07-22T19:56:33.880 回答
2

您是否指定了输出参数?对于 2 in / 1 out,您的 SQL 代码将如下所示:

EXEC [dbo].[spGetEmployerIdCSV] ?, ?, ? OUTPUT

ResultSet 必须设置为 none!

于 2013-07-22T12:33:57.670 回答
1

我有同样的问题。

当您执行任务时,请检查“进度”选项卡;这将为您提供“完全成熟”的错误详细信息。

就我而言,我没有将在 SQL 任务中创建的参数映射到存储过程中的实际参数。

因此,双击 SQL 任务,单击左侧的参数映射,然后创建参数及其各自的映射。这是一个屏幕截图(在 2012 版中):

在此处输入图像描述

于 2014-06-24T10:15:28.793 回答
0

升级到 VS 2013 的 SSDT 后,我遇到了类似的问题(问题在于查找元素)。通过使用此答案修复:

EXEC ('dbo.MyStoredProcedure')
WITH RESULT SETS
  (
    (
        MyIntegerColumn INT NOT NULL,
        MyTextColumn VARCHAR(50) NULL,
        MyOtherColumn BIT NULL
    )
  )
于 2019-10-24T15:24:57.127 回答
-3

使用与在 MySQL 工作台中运行存储过程相同的命令

称呼 ();

在执行 SQL 任务中使用此命令

于 2014-01-07T23:59:52.730 回答