Quantcast
Channel: SQL.ru: Microsoft SQL Server
Viewing all articles
Browse latest Browse all 7251

select .... for XML в файл - подскажите, пожалуйста

$
0
0
Подскажите, пожалуйста, КАК во внешний файл сбросить что бы получить .xml - файл вида:

<?xml version="1.0" encoding="utf-8"?>
<ROOT>
  <Nomenklatura>
    <Tovar Artic="art1" Ident="NewArt1" NAME="Новая позиция №1" VolCubMetr="0.8" DlinMetr="2" Visota="1" ShirinaM="0.4" Provereno="+">
       <TovarDetali>
          <TovarDetail vkluch="osnovanie1" kolich="2" DlinMetr="1" ShirinaM="0.4" provereno="+"/>
          <TovarDetail vkluch="stanina1" kolich="1" DlinMetr="2" ShirinaM="0.3" provereno="+"/>
          <TovarDetail vkluch="nabornik" kolich="1" DlinMetr="1" ShirinaM="0.3" provereno="-"/>
       </TovarDetali>
    </Tovar>
    <Tovar Artic="art2" Ident="NewArt2" NAME="Кран 12" VolCubMetr="7.5" DlinMetr="3" Visota="1" ShirinaM="2.5" Provereno="+"/>
  </Nomenklatura>
</ROOT>


Скрипт на таблицы тут:
+
declare @TovTbl  table ( Articul nvarchar(50) null
                        ,Identificator nvarchar(50) null
                        ,Name nvarchar(50) null
                        ,DlinMetr numeric(19,9) null
                        ,Visota numeric(19,9) null
                        ,ShirinaM numeric(19,9) null
                        ,Provereno char(1) null
                        ,Cena money null
                        ,Zakaz char(1) );
                        
declare @ComplTbl  table ( Articul nvarchar(50) null
                        ,vkluch nvarchar(50) null
                        ,Name nvarchar(50) null
                        ,DlinMetr numeric(19,9) null
                        ,Visota numeric(19,9) null
                        ,ShirinaM numeric(19,9) null
                        ,Provereno char(1) null
                        ,Cena money null
                        ,kolich numeric (5,2) null);

insert into @TovTbl (Articul,Identificator,Name,DlinMetr,Visota,ShirinaM,Provereno) 
  values ('art1', 'NewArt1', 'Новая позиция №1', 2, 1, 0.4, '+')
        ,('art2', 'NewArt2', 'Кран 12', 3, 1, 2.5, '+') ;
insert into @ComplTbl (Articul,vkluch,Name,DlinMetr,Visota,ShirinaM,Provereno,kolich)
  values ('art1', 'osnovanie1', 'Основание изделия', 1, null, 0.4, '+', 2)
        ,('art1', 'stanina1', 'Станина изделия', 2, null, 0.3, '+', 1 )
        ,('art1', 'nabornik', 'намордник', 1, null, 0.3, '-', 1 );

select Articul,Identificator,Name, VolCubMetr = cast((DlinMetr * Visota * ShirinaM) as numeric(19,9)), DlinMetr,Visota,ShirinaM,Provereno 
  from @TovTbl ;

select vkluch,kolich,DlinMetr,ShirinaM,Provereno
  from @ComplTbl ;



В xml - нивзубногой: описание скуля смотрел, темы листал, свои закладки на форуме перелопатил, всё равно туплю

Как начал с
select TovTbl.Articul,TovTbl.Identificator,TovTbl.Name, VolCubMetr = cast((TovTbl.DlinMetr * TovTbl.Visota * TovTbl.ShirinaM) as numeric(19,9)), TovTbl.DlinMetr,TovTbl.Visota,TovTbl.ShirinaM,TovTbl.Provereno 
      ,ComplTb.vkluch,ComplTb.kolich,ComplTb.DlinMetr,ComplTb.ShirinaM,ComplTb.Provereno
  from @TovTbl [TovTbl] 
    left outer join @ComplTbl [ComplTb] on [TovTbl].Articul = [ComplTb].Articul
  order by TovTbl.Articul for xml auto, ROOT

... так к нему опять и вернулся.
Проблемы всего лишь две:
1. С утилитой bcp какая-то фигня - в файл падает какая-то мегахерь - вроде понимаю что не так, но поправить не удаётся
2. Не могу понять как прикрутить "<?xml version="1.0" encoding="utf-8"?>" и засунуть всё в <ROOT> и в <Nomenklatura>.

MS-SQL Server 2008 (Stnd)


Заранее спасибо.
PS Мозг уже просто сломлен :(
PPS Трезвый я. Просто устал, наверное...
--------------------------
No ROM Basic...

Viewing all articles
Browse latest Browse all 7251

Trending Articles