SSIS执行SQL任务错误:多步骤OLE DB操作生成错误--可能是由于参数映射
我在SQL Server 2008和BIDS(SSIS)中工作。我试图在执行包时生成一个“加载ID”,并将该ID存储在加载历史表中(然后填充后续表) 我的基本SSIS控制流如下所示: 执行SQL任务、数据流任务 通过以下步骤创建负载表:SSIS执行SQL任务错误:多步骤OLE DB操作生成错误--可能是由于参数映射,ssis,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任务
CREATE TABLE dbo.LoadHistory
(
LoadHistoryId int identity(1,1) NOT NULL PRIMARY KEY,
LoadDate datetime NOT NULL
);
执行SQL任务的编辑器如下所示:
概述:
结果集=无
ConnectionType=OLE DB
SQLStatement:
INSERT INTO dbo.LoadHistory (LoadDate) VALUES(@[System::StartTime]);
SELECT ? = SCOPE_IDENTITY()
参数映射:
变量名=用户::加载ID
方向=输出
数据类型=长
参数名称=0
参数大小=-1
SSIS正在引发以下错误:
[Execute SQL Task]错误:执行查询“INSERT INTO dbo.LoadHistory”
“…”失败,出现以下错误:“多步骤OLE DB操作生成错误。请检查每个OLE DB状态值(如果可用)。未完成任何工作。”。可能的失败原因:查询问题、“ResultSet”属性设置不正确、参数设置不正确或连接建立不正确
此错误消息并不能真正帮助我找到问题。我最好的猜测是,这是由于参数映射,但我没有看到我的错误。有人能指出我的问题并提供解决方案吗?我解决了我的问题。System::StartTime需要将DATE作为其数据类型,而不是DBTIMESTAMP。我解决了我的问题。System::StartTime需要将DATE作为其数据类型,而不是DBTIMESTAMP。我传递了三个参数。 在参数名称属性中,我有:
0
1
3
更正为:
0
1
2
它现在可以工作了,没有多步操作生成错误消息。我传递了三个参数。 在参数名称属性中,我有:
0
1
3
更正为:
0
1
2
它现在可以工作了,没有多步操作生成错误消息。为什么您的
ResultSet=None
也,这不是在执行SQL任务中使用参数的方式。我在以下链接中使用了选项1作为模板:好吧,那个家伙是个白痴。在使用OLE DB连接管理器将参数映射到的查询中,您需要使用?
作为占位符。查看关于为什么您的ResultSet=None
的选项,这不是如何将参数用于执行SQL任务我使用以下链接中的选项1作为模板:好吧,那家伙是个白痴。在使用OLE DB连接管理器将参数映射到的查询中,您需要使用?
作为占位符。请参见上的选项