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



我在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 任务的编辑器如下所示:

常规:

结果集 = 无

连接类型 = OLE DB

SQLStatement:

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

参数映射:

变量名称 = 用户::加载ID

方向 = 输出

数据类型 = 长整型

参数名称 = 0

参数大小 = -1

SSIS 引发以下错误:

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

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

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

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

0
1
3

更正为:

0
1
2

它现在可以工作,没有多步骤操作生成错误消息。

相关内容

最新更新