我有一个包含数据的XML文件,我尝试使用SSIS将其传输到DB中。我的问题是有些字段中有很长的文本。在数据库中,我将它们设置为ntext,所以没问题。但是SSIS在读取它们时遇到了问题。
我认为这是因为ssis生成的模式,它将这个字段表示为xs:string。我已经在网上搜索过了,所以没有xs:ntext类型(也许我只是没有找到它)。
模式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>
发布于 2011-03-10 16:39:17
我找到了解决方案:我所需要做的就是将所有的长字符串模式更改为:
<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中可用于字符串的最大长度......希望我帮助了某个人:)
https://stackoverflow.com/questions/5262164
复制相似问题