【问题标题】:Getting long string out of xml file to DB using SSIS string seems to be too short使用 SSIS 字符串从 xml 文件中获取长字符串到 DB 似乎太短了
【发布时间】:2021-02-03 02:06:05
【问题描述】:

我有一个包含数据的 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>

【问题讨论】:

    标签: sql-server xml ssis xsd 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 中字符串可用的最大长度...... 希望我帮助了某人:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-26
      • 2012-07-03
      • 2015-08-06
      • 1970-01-01
      • 2016-05-22
      • 1970-01-01
      • 2017-02-22
      • 2014-01-31
      相关资源
      最近更新 更多