Получение длинной строки из XML-файла в БД с использованием строки служб SSIS представляется слишком коротким - PullRequest
0 голосов
/ 10 марта 2011

У меня есть XML-файл с данными, которые я пытаюсь использовать SSIS для передачи в БД. Моя проблема в том, что некоторые поля содержат длинный текст. В БД я установил их как 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>

1 Ответ

1 голос
/ 10 марта 2011

Я нашел решение: все, что мне нужно было сделать, это изменить схему всех длинных строк на:

<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 ...... Надеюсь, япомог кто-то :) 1004 *

...