我有一个包,它将XML数据插入记录集目的地,并通过Execute SQL
任务
我的XML包含
等数据<ROOT>
<row firstName="Joe" lastName="Blow" city="Seattle" state="WA" phone="555-666-7777"/>
<row firstName="Jane" lastName="Doe" city="Los Angeles" state="CA" phone="566-866-2345"/>
<row firstName="Robert" lastName="Smith" city="Washington" state="DC" phone="444-555-6666"/>
<row firstName="Mary" lastName="Contrary" city="Garden City" state="FL" phone="234-876-9374"/>
<row firstName="Thomas" lastName="Doubter" city="New Orleans" state="LA" phone="384-389-7342"/>
<row firstName="Barbara" lastName="Bologna" city="Chicago" state="IL" phone="483-483-8162"/>
</ROOT>
我在包中使用了四个变量,所有字符串类型
firstname,lastname,city,state,phone
现在我的要求是我需要根据名字将这个XML数据插入我的目标表中。
如果我选择了firstname= Robert
,则只有具有该名字的行必须输入到我的目标表中。
我的执行sql任务包含
Result set Property--single row
connection type--OLEDB
connection--myconnection
sql statement--declare @firstName varchar(25)
select @firstName= ?
INSERT INTO people_xml (firstName, lastName,city,state,phone)
select firstName,lastName, city,state,phone from people_xml
where firstName=@firstName
Select Convert(varchar,Scope_Identity()) as SourceIDentity
参数映射选项卡
user::firstname
user::lastname
user::city
user::state
user::phone
结果集标签
result Name--0
variable Name--User::SourceID
当我运行包时,它会抛出类似
的错误[执行SQL任务]错误:执行查询“声明@firstName varchar(25) select @ firstName = ...“失败,出现以下错误:”多步OLE DB 操作产生的错误。检查每个OLE DB状态值(如果可用)。没有 工作已完成。“。可能的失败原因:查询问题,”ResultSet“ 属性设置不正确,参数设置不正确或连接不正确 建立正确。
答案 0 :(得分:0)
此错误的问题是非常通用的。我个人两次得到这个错误。一旦我通过匹配字段LENGTHS解决了它。例如,我在表中使用了varchar(80),在插入时使用了varchar(50)。我通过使用相同的类型和长度来解决它。
我第二次陷入困境但幸好有一个人遇到了比我更多的问题:我必须使用regsvr32注册sqltaskconnections.dll。在互联网上搜索它,你会在那里找到一个指南。
如果我是你,我会试一试。正如我之前所说,这个错误是非常通用的,除非有人真正明智的回答,我的猜测是你将不得不挣扎= - (
希望这有帮助!