SSIS执行SQL任务错误:多步OLE DB操作生成错误 - 可能是由于参数映射

时间:2015-02-03 19:44:31

标签: ssis

我在SQL Server 2008和BIDS(SSIS)工作。我正在尝试生成一个"加载ID"当执行包时,将该ID存储在加载历史记录表中(然后填充后续表)。

我的基本SSIS控制流程如下: 执行SQL任务,数据流任务

通过以下方式创建加载表:

CREATE TABLE dbo.LoadHistory
(
    LoadHistoryId int identity(1,1) NOT NULL PRIMARY KEY,
    LoadDate datetime NOT NULL
);

执行SQL任务的编辑器如下:

一般:

ResultSet =无

ConnectionType = OLE DB

的SQLStatement:

INSERT INTO dbo.LoadHistory (LoadDate) VALUES(@[System::StartTime]);
SELECT ? = SCOPE_IDENTITY()

参数映射:

变量名称= User :: LoadID

方向=输出

数据类型= LONG

参数名称= 0

参数大小= -1

SSIS抛出以下错误:

[执行SQL任务]错误:执行查询" INSERT INTO dbo.LoadHistory                       ..."失败并出现以下错误:"多步OLE DB操作生成错误。检查每个OLE DB状态值(如果可用)。没有工作。"。可能的失败原因:查询问题," ResultSet"属性设置不正确,参数设置不正确或连接未正确建立。

此错误消息并不能帮助我找到问题。我最好的猜测是由于参数映射,但我没有看到我的错误。任何人都可以指出我的问题并提供修复吗?

2 个答案:

答案 0 :(得分:1)

我发现了我的问题。 System :: StartTime需要将DATE作为其数据类型,而不是DBTIMESTAMP。

答案 1 :(得分:1)

我传递了三个参数。 在“参数名称”属性中,我有:

0
1
3

将其更正为:

0
1
2

现在可以使用,没有多步操作会生成错误消息。