Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 SSIS : Загрузка "самого простого" xml-файла  [new]
ъ
Guest
Приветствую уважаемый all !

имеется наипростейший xml-файл

<?xml version="1.0" encoding="windows-1251"?>
<root>
<id>1</id>
<id>2</id>
</root>


нужно его загрузить в табличку
USE [tempdb]
GO

CREATE TABLE [dbo].[T](
	[id] [int]
) ON [PRIMARY]


с помошью SSIS пакета

создал пакет - Data Flow Task = XML Source -> OLE DB Destination,
сгенерировал схему
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="id" type="xs:unsignedByte" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>


всё прекраснейшим образом отрабатывает (рис.), но в таблицу добавляются 2-а NULL-а !

"дык как жежж так-то ?!"

Научите, плз, где / в чём я не прав ? чего ради оно туда эти НУЛЛы пхает-то ?!

Спасибо !

К сообщению приложен файл. Размер - 35Kb
8 ноя 12, 18:40    [13441800]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
ъ
Guest
аааа-а-ап ! :)

комрады,

ну не верю я, что это только мне так "не повезло", и что никто с таким не сталкивался ...
мне бы хоть понять, - есть ли всё-таки способ сделать эту загрузку через SSIS, или нужно "забивать" и переделывать на загрузку в процедуре, через тип xml ... ?
9 ноя 12, 10:23    [13444292]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
ъ
Guest
и что характерно, вот такой (чуть изменённый) файл
<?xml version="1.0" encoding="windows-1251"?>
<root>
  <xz>
    <id>1</id>
    <id>2</id>
  </xz>
</root>

со "стандартно-сгенерированной" ССИС-ом схемой
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="xz">
          <xs:complexType>
            <xs:sequence>
              <xs:element minOccurs="0" maxOccurs="unbounded" name="id" type="xs:unsignedByte" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

"вгружается" - на раз-два !
9 ноя 12, 10:26    [13444310]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31865
ъ
ну не верю я, что это только мне так "не повезло", и что никто с таким не сталкивался ...
Да, странно :-(
9 ноя 12, 10:44    [13444419]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31865
alexeyvg
ъ
ну не верю я, что это только мне так "не повезло", и что никто с таким не сталкивался ...
Да, странно :-(
Я не сталкивался (не было таких данных, прямо из root-а), но действительно так не загружает...
9 ноя 12, 10:45    [13444425]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
вот такой финт ушами проходит - добавим атрибут

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="id">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="a1" type="xs:string" use="optional" />
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element> 
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

и усе
9 ноя 12, 12:02    [13445061]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
хотя может и можно сделать проще, но надо точно менять схему, проблема в ней
9 ноя 12, 12:13    [13445167]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
ъ
Guest
HandKot
вот такой финт ушами проходит - добавим атрибут

ничего не понимаю ... у Вас с такой схемой загрузились значения ?
+

<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="id">
          <xs:complexType>
            <xs:simpleContent>
              <xs:extension base="xs:string">
                <xs:attribute name="a1" type="xs:string" use="optional" />
              </xs:extension>
            </xs:simpleContent>
          </xs:complexType>
        </xs:element> 
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

у меня - всё те же НУЛЛы .... ((

вписал даже явно атрибуты в xml
<?xml version="1.0" encoding="windows-1251"?>
<root>
  <id a1="1">1</id>
  <id a1="2">2</id>
</root>

дык, та же картина - значения из атрибутов - загружаются, а text - NULL ...

незнаю, может это важно - делаю в 2005-ой студии

К сообщению приложен файл. Размер - 35Kb
9 ноя 12, 12:53    [13445488]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
ъ,

да все грузит
вот скрин дата вьювера

К сообщению приложен файл. Размер - 12Kb
9 ноя 12, 13:33    [13445948]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
и в таблице все есть
9 ноя 12, 13:34    [13445959]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
ъ
Guest
HandKot
и в таблице все есть

даже незнаю ... "крутил" уже эту схему повсякому - результат тот же - NULL ...
это не может быть связанно с версией VS (или ещё чего) ?

в общем, решил проблему "по джедайски" - переделыванием файла,
полученный хмл обрабатывается файлом трансформации, который тупо дописывает ещё один рут,
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>

<xsl:template match="/"> 
<root>
	<xz>
		<xsl:for-each select="//id"> 
			<xsl:element name="id">
				<xsl:apply-templates select="."/> 
			</xsl:element> 
		</xsl:for-each> 
	</xz>     
</root>
</xsl:template>

</xsl:stylesheet>

и загружается уже, результат трансформации
  <?xml version="1.0" ?> 
- <root>
- <xz>
  <id>1</id> 
  <id>2</id> 
  </xz>
  </root>


Всем спасибо !
12 ноя 12, 10:37    [13457096]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
ъ, ну может конечно версия студии у меня 2008
коли доберусь до 2005, отпишусь
12 ноя 12, 11:11    [13457314]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
HandKot
ъ, ну может конечно версия студии у меня 2008
коли доберусь до 2005, отпишусь

действительно в 2005 такой финт не прокатывает
и, уж коли проблема решена, то и разбираться дальше лень
12 ноя 12, 12:20    [13457815]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
ъ
Guest
HandKot
действительно в 2005 такой финт не прокатывает

ну вот, значит дело "не в руках"

HandKot, спасибо за внесённую ясность !
12 ноя 12, 12:31    [13457879]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31865
HandKot
действительно в 2005 такой финт не прокатывает
В смысле, нормально импортит исходный XML, не прокатывает с дополнительным уровнем или не прокатывает с дополнительным атрибутом в схеме?
HandKot
и, уж коли проблема решена, то и разбираться дальше лень
По хорошему надо бы баг запостить, хочется разобраться. Хотя может забили в МС на XML импорт, много там неудобных вещей, но всё равно надо долбить...
12 ноя 12, 15:39    [13459538]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
HandKot
Member

Откуда: Sergiev Posad
Сообщений: 3034
alexeyvg
В смысле, нормально импортит исходный XML, не прокатывает с дополнительным уровнем или не прокатывает с дополнительным атрибутом в схеме?

не работает импорт файла даже с указанием дополнительного атрибута в схеме (хотя в 2008 это прокатило)
alexeyvg
По хорошему надо бы баг запостить, хочется разобраться. Хотя может забили в МС на XML импорт, много там неудобных вещей, но всё равно надо долбить...

может быть и надо, но уже вышед 2012, надо там смотреть
12 ноя 12, 16:32    [13460030]     Ответить | Цитировать Сообщить модератору
 Re: SSIS : Загрузка "самого простого" xml-файла  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31865
HandKot
не работает импорт файла даже с указанием дополнительного атрибута в схеме (хотя в 2008 это прокатило)
Понятно, спасибо.
HandKot
alexeyvg
По хорошему надо бы баг запостить, хочется разобраться. Хотя может забили в МС на XML импорт, много там неудобных вещей, но всё равно надо долбить...

может быть и надо, но уже вышед 2012, надо там смотреть
Да, надо посмотреть...
Но вообще и в 2008 (R2) надо фиксить, ошибка наверняка простая.
12 ноя 12, 16:39    [13460097]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить