SSIS - 无法读取XML - 该文件正被另一个进程

时间:2015-10-24 17:57:41

标签: xml ssis oledb etl

我无法使用XML阅读SSIS文件。我的目标是读取它然后将数据插入MSSQL数据库(它将是一个查找表)

到目前为止,这是我的数据流

Data Flow

流程" 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),我仍然遇到同样的问题。

XML Source task failed

和进度选项卡中的错误消息

enter image description here

错误的翻译将是

  

由于正在使用该进程,因此无法访问该文件   通过另一个过程

可能导致此问题的原因是什么?我该如何解决? 我是SSIS的新手,所以如果您需要更多信息,我可以提供。

先谢谢

更新 我所注意到的(因为我是xml的备份)就是当我第一次使用ETL读取XML时,它会插入大量虚拟数据作为空值的形式。

之前没有那些空值

Extra Nulls

可能导致此问题的原因是什么?这可能与原始问题有关吗?

1 个答案:

答案 0 :(得分:2)

我发现了问题

已启用日志记录,并且日志条目已写入我尝试读取的同一文件中。我误解了日志记录的配置,我把错误的文件。现在我选择了一个新的xml,它运行正常。