2015-10-24 47 views
1

我無法使用SSIS讀取XML文件。我的目標是讀它,然後將數據插入到MSSQL數據庫(這將是一個查找表)SSIS - 無法讀取XML - 該文件正在被另一個進程使用

這是我的數據流到目前爲止

Data Flow

其中工藝「閱讀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> 

,並(通過SSIS生成)的XSD是

<?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

的翻譯錯誤是

進程無法訪問該文件,因爲它正在使用 by other process

什麼可能導致此問題?我該如何解決它? 我對SSIS很新,所以如果你需要更多的信息,我可以提供。

由於提前

UPDATE 我已經注意到了(因爲我的XML的備份)是當我讀XML首次與ETL它插入了很多假的數據爲空值形式。

那些空都沒有了

Extra Nulls

什麼可能會造成這個問題之前?可能這與原始問題有關?

+1

嘗試在Windows資源管理器中重命名XML文件以再次檢查它是否正在使用中。然後下載進程資源管理器(http://serverfault.com/questions/1966/how-do-you-find-what-process-is-holding-a-file-open-in-windows),並找出文件的內容打開。這是你的整個包嗎? –

+0

@ Nick.McDermaid是的,我可以重命名XML文件。我有其他的軟件包,但沒有任何其他任務正在讀取任何XML。 –

回答

2

我發現這個問題

日誌記錄啓用和日誌條目被寫入同一個文件,我想讀。我誤解了日誌記錄的配置,並且輸入了錯誤的文件。現在我選擇了一個新的xml,它工作正常。

+2

感謝您回覆併發布您的解決方案! –

相關問題