我无法使用XML
阅读SSIS
文件。我的目标是读取它然后将数据插入MSSQL
数据库(它将是一个查找表)
到目前为止,这是我的数据流
流程" Leer Usuarios" (阅读英文用户)是负责阅读xml的人。
是xml文件的一个示例<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<NewsItemsTable>
<NewsItemRow>
<ID>1</ID>
<Edad>28</Edad>
<Estado_Civil>Soltero</Estado_Civil>
<Sexo>F</Sexo>
<Provincia>Ciudad Autonoma Buenos Aires</Provincia>
<Localidad>La Paternal</Localidad>
</NewsItemRow>
<NewsItemRow>
<ID>2</ID>
<Edad>28</Edad>
<Estado_Civil>Soltero</Estado_Civil>
<Sexo>F</Sexo>
<Provincia>Ciudad Autonoma Buenos Aires</Provincia>
<Localidad>La Boca</Localidad>
</NewsItemRow>
</NewsItemsTable>
和XSD(由SSIS生成)
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="NewsItemsTable">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="NewsItemRow">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="ID" type="xs:integer" />
<xs:element minOccurs="0" name="Edad" type="xs:short" />
<xs:element minOccurs="0" name="Estado_Civil" type="xs:string" />
<xs:element minOccurs="0" name="Sexo" type="xs:string" />
<xs:element minOccurs="0" name="Provincia" type="xs:string" />
<xs:element minOccurs="0" name="Localidad" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
当我运行此数据流时,我得到XML源上的错误,即xml文件正在另一个进程中使用。我没有任何其他程序使用它,我甚至重新启动了机器(MS Server 2003),我仍然遇到同样的问题。
和进度选项卡中的错误消息
错误的翻译将是
由于正在使用该进程,因此无法访问该文件 通过另一个过程
可能导致此问题的原因是什么?我该如何解决? 我是SSIS的新手,所以如果您需要更多信息,我可以提供。
先谢谢
更新 我所注意到的(因为我是xml的备份)就是当我第一次使用ETL读取XML时,它会插入大量虚拟数据作为空值的形式。
之前没有那些空值
可能导致此问题的原因是什么?这可能与原始问题有关吗?
答案 0 :(得分:2)
我发现了问题
已启用日志记录,并且日志条目已写入我尝试读取的同一文件中。我误解了日志记录的配置,我把错误的文件。现在我选择了一个新的xml,它运行正常。