3

XML ファイルを SQL Server 2008 R2 データベースにインポートする必要があります。

したがって、ハードコードされた XML データを使用したクエリがあります。

DECLARE @xml XML
SET @xml='
<goods_item>
<goods_level>1</goods_level>
<goods_isgroup>1</goods_isgroup>
<goods_code>51852</goods_code>
<goods_name></goods_name>
<goods_parent></goods_parent>
<goods_art></goods_art>
<goods_buhart></goods_buhart>
<goods_inpack>0</goods_inpack>
<goods_packtxt></goods_packtxt>
<goods_country></goods_country>
<goods_gtd></goods_gtd>
<goods_nds>0</goods_nds>
<goods_unit></goods_unit>
</goods_item>
<goods_item>
<goods_level>1</g    oods_level>
<goods_isgroup>1</goods_isgroup>
<goods_code>51852</goods_code>
<goods_name></goods_name>
<goods_parent></goods_parent>
<goods_art></goods_art>
<goods_buhart></goods_buhart>
<goods_inpack>0</goods_inpack>
<goods_packtxt></goods_packtxt>
<goods_country></goods_country>
<goods_gtd></goods_gtd>
<goods_nds>0</goods_nds>
<goods_unit></goods_unit>
</goods_item>'

そして、それはうまくいきます。しかし、ハードコードされた XML データを XML ファイルへのパスに変更するにはどうすればよいでしょうか?

これについて何か:

SET @xml='D:\xml1.xml'
4

1 に答える 1

1

最初に、次のように一時テーブルにインポートできます。

declare @insert nvarchar(1000), @pathname varchar(200), @xml xml

set @pathname = 'your path here'

create table #tmp_xml(xmldata xml)

set @insert = 'INSERT INTO #tmp_xml(xmldata) SELECT bulkcolumn 
      FROM OPENROWSET (BULK N''' + @pathname+ ''', SINGLE_BLOB) AS data'

exec sp_executesql @insert

select @xml = xmldata from #tmp_xml

-- read, parse xml here ....
drop table #tmp_xml
于 2012-08-16T15:04:35.750 に答える