2011-03-10 66 views
0

我有一个XML文件,其中有数据,我尝试使用SSIS传输到数据库。 我的问题是,一些字段中有长文本。 在数据库中,我将它们设置为ntext,所以没有问题。 但SSIS有问题要阅读它们。 我认为它与ssis所产生的模式相一致,以此来表示这个字段为xs:string。 我搜索了净等心不是一个XS:NTEXT类型(也许我只是didnt发现)... 模式的XML:使用SSIS字符串从XML文件中获取长字符串到数据库字符串似乎太短

<?xml version="1.0"?> 
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema"> 
<xs:element name="ystfeed"> 
<xs:complexType> 
    <xs:sequence> 
    <xs:element minOccurs="0" maxOccurs="unbounded" name="vespaadd"> 
     <xs:complexType> 
     <xs:sequence> 
      <xs:element minOccurs="0" name="document"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element minOccurs="0" name="uri" type="xs:unsignedInt" /> 
       <xs:element minOccurs="0" name="subject" type="xs:string" /> 
       <xs:element minOccurs="0" name="content" type="xs:string" /> 
       <xs:element minOccurs="0" name="bestanswer" type="xs:string" /> 
       <xs:element minOccurs="0" name="nbestanswers"> 
        <xs:complexType> 
        <xs:sequence> 
         <xs:element minOccurs="0" maxOccurs="unbounded" name="answer_item" type="xs:string" /> 
        </xs:sequence> 
        </xs:complexType> 
       </xs:element> 
       <xs:element minOccurs="0" name="cat" type="xs:string" /> 
       <xs:element minOccurs="0" name="maincat" type="xs:string" /> 
       <xs:element minOccurs="0" name="subcat" type="xs:string" /> 
       <xs:element minOccurs="0" name="date" type="xs:unsignedInt" /> 
       <xs:element minOccurs="0" name="res_date" type="xs:unsignedInt" /> 
       <xs:element minOccurs="0" name="vot_date" type="xs:unsignedInt" /> 
       <xs:element minOccurs="0" name="lastanswerts" type="xs:unsignedInt" /> 
       <xs:element minOccurs="0" name="qlang" type="xs:string" /> 
       <xs:element minOccurs="0" name="qintl" type="xs:string" /> 
       <xs:element minOccurs="0" name="language" type="xs:string" /> 
       <xs:element minOccurs="0" name="id" type="xs:string" /> 
       <xs:element minOccurs="0" name="best_id" type="xs:string" /> 
       </xs:sequence> 
       <xs:attribute name="type" type="xs:string" use="optional" /> 
      </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
     </xs:complexType> 
    </xs:element> 
    </xs:sequence> 
</xs:complexType> 
</xs:element> 
</xs:schema> 

回答

1

我找到了解决办法: 所有我需要做的是所有的长字符串的模式改变为:

<xs:element minOccurs="0" name="subject"> 
         <xs:simpleType> 
          <xs:restriction base="xs:string"> 
           <xs:maxLength value="4000"/> 
          </xs:restriction> 
         </xs:simpleType> 
        </xs:element> 

由于4000可用于在SSIS字符串的最大长度...... 希望我帮助别人:)