Sql SSIS XML源错误-输入字符串的格式不正确
我在XSD文件中有一个属性tlost,其定义如下。我已经尝试了Sql SSIS XML源错误-输入字符串的格式不正确,sql,xml,package,ssis-2012,Sql,Xml,Package,Ssis 2012,我在XSD文件中有一个属性tlost,其定义如下。我已经尝试了use=“required”和use=“optional” 在我尝试导入的XML文档中,我将获得如下值: <defense ast="0" category="special_team" tlost="0" int="0"/> 我正在执行一个SSIS包,该包接受tlost值并将其插入sql数据库表中。数据库表中的列的数据类型为DECI
use=“required”
和use=“optional”
在我尝试导入的XML文档中,我将获得如下值:
<defense ast="0" category="special_team" tlost="0" int="0"/>
我正在执行一个SSIS包,该包接受tlost值并将其插入sql数据库表中。数据库表中的列的数据类型为DECIMAL(28,10)
,并允许null
s
当我执行包时,前面的值工作正常,数据被插入。但是,当我在XML文件中得到一个tlost=”“
的值时,包失败,记录没有插入
在数据流路径编辑器中,tlost的数据类型为DT\u DECIMAL
。当我检查XML源的高级编辑器时,输入和输出属性的tlost数据类型为decimal[DT_decimal]
我不明白为什么会失败。我试图创建一个派生列,并将其转换为(DT_DECIMAL,10)
数据类型。那没用。我尝试检查空值,如果为空,则替换为0,但不起作用。因此,我一起忽略了列,在派生列任务中,我用(DT_DECIMAL,10)
0替换了tlost列值,只插入一个0值并忽略xml文件中的任何内容,作业仍然失败,并显示以下错误消息:
错误:0xC020F444加载播放摘要表,XML源[1031]:处理“XML源。输出[defence]。列[tlost]
”时发生错误“输入字符串格式不正确”
错误:加载播放摘要表处的0xC02090FB,XML源[1031]:“XML源”失败,因为发生了错误代码0x80131537,“XML源”上的错误行处理在“XML源”上输出[defence]。列[tlost]
”。输出[defence]“指定错误时失败。指定组件的指定对象上发生错误
错误:0xC02092AF加载播放摘要表,XML源[1031]:XML源无法处理XML数据。管道组件已从方法调用返回HRESULT错误代码0xC02090FB
错误:0xC0047038位于加载播放摘要表,SSIS。管道:SSIS错误代码DTS_E_PRIMEOUTPUTFAILED。XML源上的PrimeOutput方法返回错误代码0xC02092AF。当管道引擎调用PrimeOutput()
时,组件返回了故障代码。故障代码的含义由组件定义,但错误是致命的,管道停止执行。在此之前可能会发布错误消息,其中包含有关故障的更多信息
请帮忙。我已经用尽了我能想到的一切来解决这个问题。我正在处理数百个文件,每次出现此问题时,我都无法继续修复错误的数据文件。您能试试这些吗 1-在xsd中将数据类型更改为字符串,并在加载到表中之前处理数据类型转换。 2-如果可能,通过传递xml生成xsd,然后验证数据类型并相应地使用它 xsd的其余部分可以相应地更改 下面是我尝试的屏幕抓图。希望有帮助]
<defense ast="0" category="special_team" tlost="0" int="0"/>