Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql SSIS XML源错误-输入字符串的格式不正确_Sql_Xml_Package_Ssis 2012 - Fatal编程技术网

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

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

我在XSD文件中有一个属性tlost,其定义如下。我已经尝试了
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"/>