SSIS - 无法读取 XML - 文件正被另一个进程使用
SSIS - Can't Read XML - The file is being used by another process
我无法使用 SSIS
读取 XML
文件。我的目标是读取它,然后将数据插入 MSSQL
数据库(这将是一个查找 table)
这是我目前的数据流
其中进程 "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),但我仍然遇到同样的问题。
和正在进行选项卡中的错误消息
错误的翻译是
The process could not access the file because it is being used
by another process
是什么导致了这个问题?我该如何解决?
我是 SSIS 的新手,所以如果您需要更多信息,我可以提供。
提前致谢
更新
我注意到(因为我有 xml 的备份)是当我第一次使用 ETL 读取 XML 时,它插入了大量空值形式的虚拟数据。
那些空值以前不存在
是什么导致了这个问题?这可能与原始问题有关吗?
我发现了问题
日志记录已启用,日志条目已写入我试图读取的同一个文件。我误解了日志记录的配置,我放错了文件。现在我选了一个新的 xml,它工作正常。
我无法使用 SSIS
读取 XML
文件。我的目标是读取它,然后将数据插入 MSSQL
数据库(这将是一个查找 table)
这是我目前的数据流
其中进程 "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),但我仍然遇到同样的问题。
和正在进行选项卡中的错误消息
错误的翻译是
The process could not access the file because it is being used by another process
是什么导致了这个问题?我该如何解决? 我是 SSIS 的新手,所以如果您需要更多信息,我可以提供。
提前致谢
更新 我注意到(因为我有 xml 的备份)是当我第一次使用 ETL 读取 XML 时,它插入了大量空值形式的虚拟数据。
那些空值以前不存在
是什么导致了这个问题?这可能与原始问题有关吗?
我发现了问题
日志记录已启用,日志条目已写入我试图读取的同一个文件。我误解了日志记录的配置,我放错了文件。现在我选了一个新的 xml,它工作正常。