Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS XML source  [new]
Anikanich
Member

Откуда:
Сообщений: 4
Добрый день!
Пытаюсь использовать SSIS для перетаскивания данных из группы xml файлов в sql таблицы.
Настроил XML Source. Сгенерировал схему стандартными средствами. Столкнулся с рядом проблем:
1. Типы данных не совпадают. Начал менять типы в схеме xsd, но некоторые недоступны.
2. Не весь файл был преобразован.

Пример файла xml:

<?xml version="1.0" encoding="utf-8" ?>
- <ORDER>
  <DOCUMENTNAME>220</DOCUMENTNAME>
  <NUMBER>11314023</NUMBER>
  <DATE>2009-1-1</DATE>
  <DELIVERYDATE>2009-2-2</DELIVERYDATE>
  <CAMPAIGNNUMBER>22883</CAMPAIGNNUMBER>
  - <HEAD>
    <SUPPLIER>4820123880008</SUPPLIER>
    <BUYER>4820086630009</BUYER>
    <DELIVERYPLACE>4820086639996</DELIVERYPLACE>
    <INVOICEPARTNER>4820086630009</INVOICEPARTNER>
    <SENDER>4820086630009</SENDER>
    <RECIPIENT>4820123880008</RECIPIENT>
    <EDIINTERCHANGEID>000811</EDIINTERCHANGEID>
    <EDIMESSAGE>ORDERS</EDIMESSAGE>
    - <POSITION>
      <POSITIONNUMBER>1</POSITIONNUMBER>
      <PRODUCT>9861002075035</PRODUCT>
      <PRODUCTIDBUYER>210818</PRODUCTIDBUYER>
      <ORDEREDQUANTITY>24.00</ORDEREDQUANTITY>
    </POSITION>
    - <POSITION>
      <POSITIONNUMBER>2</POSITIONNUMBER>
      <PRODUCT>9861002075042</PRODUCT>
      <PRODUCTIDBUYER>210819</PRODUCTIDBUYER>
      <ORDEREDQUANTITY>18.00</ORDEREDQUANTITY>
    </POSITION>
  </HEAD>
</ORDER>

Схема xsd:
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">

  
  <xs:element name="ORDER">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="DOCUMENTNAME" type="xs:unsignedByte" />
        <xs:element minOccurs="0" name="NUMBER" type="xs:unsignedInt" />
        <xs:element minOccurs="0" name="DATE" type="xs:date" />
        <xs:element minOccurs="0" name="DELIVERYDATE" type="xs:date" />
        <xs:element minOccurs="0" name="CAMPAIGNNUMBER" type="xs:unsignedShort" />
        <xs:element minOccurs="0" name="HEAD">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" name="SUPPLIER" type="xs:long" />
              <xs:element minOccurs="0" name="BUYER" type="xs:unsignedLong" />
              <xs:element minOccurs="0" name="DELIVERYPLACE" type="xs:unsignedLong" />
              <xs:element minOccurs="0" name="INVOICEPARTNER" type="xs:unsignedLong" />
              <xs:element minOccurs="0" name="SENDER" type="xs:unsignedLong" />
              <xs:element minOccurs="0" name="RECIPIENT" type="xs:unsignedLong" />
              <xs:element minOccurs="0" name="EDIINTERCHANGEID" type="xs:unsignedShort" />
              <xs:element minOccurs="0" name="EDIMESSAGE" type="xs:string" />
              <xs:element minOccurs="0" maxOccurs="unbounded" name="POSITION">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element minOccurs="0" name="POSITIONNUMBER" type="xs:unsignedByte" />
                    <xs:element minOccurs="0" name="PRODUCT" type="xs:long" />
                    <xs:element minOccurs="0" name="PRODUCTIDBUYER" type="xs:integer" />
                    <xs:element minOccurs="0" name="ORDEREDQUANTITY" type="xs:decimal" />
                  </xs:sequence>
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>



Так вот на выходе благодоря такой схеме имеются 2 таблицы:
1.TABLE [POSITION]

[POSITIONNUMBER]
[PRODUCT]
[PRODUCTIDBUYER]
[ORDEREDQUANTITY]
[HEAD_Id]

2. TABLE [HEAD]

[HEAD_Id]
[SUPPLIER]
[BUYER]
[DELIVERYPLACE]
[INVOICEPARTNER]
[SENDER]
[RECIPIENT]
[EDIINTERCHANGEID]
[EDIMESSAGE]

Как добиться того чтобы на выходе была еще таблица ORDER?
Как поменять тип [HEAD_Id] по умолчанию он вроде как unsign bigint, а для sql таблицы нужен bigint?
Менять структуру xml при этом нельзя.

Просьба сильно не ругать, с xml, xsd никогда не работал..
13 ноя 09, 15:19    [7926590]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить