首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SSIS XML源错误-输入字符串格式不正确

SSIS XML源错误-输入字符串格式不正确
EN

Stack Overflow用户
提问于 2016-05-20 01:35:31
回答 1查看 2.7K关注 0票数 1

我在XSD文件中丢失了下面定义的一个属性。我试过use="required"use="optional"

代码语言:javascript
运行
复制
<xs:attributeGroup name="defense">
      <xs:attribute name="tlost" use="required" type="xs:decimal"/>
</xs:attributeGroup>

在我试图导入的XML文档中,我将得到一个值,如下所示:

代码语言:javascript
运行
复制
<defense ast="0" category="special_team" tlost="0" int="0"/>

我正在执行一个SSIS包,它接受tlost值并将其插入到sql数据库表中。数据库表中的列具有DECIMAL(28,10)的数据类型,并允许使用null

当我执行包时,前面的值完美地工作,数据被插入。但是,当我在XML文件中得到一个tlost=""的值时,包会失败,并且不会插入记录。

在数据流路径编辑器中,tlost的数据类型是DT_DECIMAL。当我检查XML的高级编辑器时,输入和输出属性有一个数据类型,tlost作为十进制[DT_DECIMAL]

我搞不懂为什么会失败。我尝试创建派生列并将其转换为(DT_DECIMAL, 10)数据类型。那不管用。我试图检查一个空值,并将其替换为0(如果为空),这是行不通的。因此,我只是一起忽略了这个列,并且在派生列任务中,我用(DT_DECIMAL, 10) 0替换了tlost列值,只插入了一个0值,忽略了xml文件中的任何内容,作业仍然失败了,出现了以下错误消息:

错误: 0xC020F444在Load摘要表中,XML 1031:错误“输入字符串格式不正确”。在处理"XML Source.Outputs[defense].Columns[tlost]“时发生。 错误: 0xC02090FB在Load Play汇总表中,XML 1031:由于错误代码0x80131537发生,"XML“失败,而"XML Source.Outputs[defense].Columns[tlost]”在"XML Source.Outputs[defense]“上的错误行处理指定错误失败。指定组件的指定对象上发生错误。 错误: 0xC02092AF在Load摘要表中,XML 1031: XML无法处理XML数据。管道组件已从方法调用返回HRESULT错误代码0xC02090FB。 错误: 0xC0047038在Load Play汇总表中,SSIS.Pipeline: SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。XML上的PrimeOutput方法返回错误代码0xC02092AF。当管道引擎调用PrimeOutput()时,组件返回一个失败代码。失败代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,并提供有关故障的更多信息。

请帮帮忙。为了解决这个问题,我已经用尽我所能想到的一切。我正在处理数百个文件,每次出现这个问题时,我都不能一直修复错误的数据文件。

EN

回答 1

Stack Overflow用户

发布于 2016-05-21 15:30:39

你能试试这个吗?

1-在xsd中将数据类型更改为string,并在加载到表之前处理数据类型转换。2-如果可能的话,通过传递xml生成xsd,然后验证数据类型并相应地使用它.

其余的xsd可以相应地更改..。

下面是我尝试过的屏幕抓取。希望它能帮上忙

]1

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37336600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档