如何使SQLSERVER2008输出UTF-8的XML文件

mingrui99 mingrui99 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
初次使用XML,在Sql Server2008中写了一段代码可以生成如下的XML文件,但是文件头的标识却不包含'<?xml version="1.0" encoding="UTF-8"?>',请教各位要怎么处理?
declare @xml varchar(max)
declare @barcode varchar(100)
declare @actor varchar(100)
declare @actdate datetime
declare @wrongcode varchar(100)
declare @tocorpid varchar(100)
declare @ownerid varchar(100)
declare @corporderid varchar(100)
declare @ordno varchar(100)
declare @itmno varchar(100)
declare @x xml
declare @title varchar(1000)
declare @title1 varchar(3000)
declare @tkdat varchar(100)
declare @custom varchar(100)
declare @xml1 xml
--set codepage = 65001
set @custom='LAP001'
set @xml='<?xml version="1.0" encoding="UTF-8"?>'
set @xml=@xml+'<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="3.0">'
set @xml=@xml+'<Events><Event name="SalesWareHouseOut" MainAction="WareHouseOut"><DataField>'
declare cu_barcode cursor for
select b.ORDNO,b.itmno,b.BAR_CODE,b.UP_DATE,a.custom
from LOG_ERP_OUT a , barcodeitem b
where a.ID=b.Erpout_id and a.custom=@custom
open cu_barcode
fetch next from cu_barcode into @ordno,@itmno,@barcode,@actdate,@custom
while @@FETCH_STATUS=0
begin
set @tkdat=CONVERT(varchar(12) , getdate(), 112 )
set @xml=@xml+'<Data Code="'+@barcode+'" Actor="0001" Actdate="'+@tkdat+'" WrongCode="False" TOCorpID="'+@custom+'" OwnerID="" CorpOrderID="Out_'+@ordno+'"/>'
fetch next from cu_barcode into @ordno,@itmno,@barcode,@actdate,@custom
end
set @xml=@xml+'</DataField></Event></Events></Document>'
set @custom='out_'+@custom
delete log_xml where custom=@custom
insert into log_xml(xml,custom)
values(@xml,@custom)
select @xml1=(select xml from log_xml where custom=@custom for xml auto)
delete tt
insert tt(aa)values(@xml1)
set @title1=@custom
set @title1='bcp data_anyang..tt out c:/xml/'+@title1+'.xml -c -T -k'
exec master..xp_cmdshell @title1
CLOSE cu_barcode
DEALLOCATE cu_barcode

生成的文件如下:
<log_x005F_xml>
- <xml>
- <Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Version="3.0">
- <Events>
- <Event name="SalesWareHouseOut" MainAction="WareHouseOut">
- <DataField>
<Data Code="10101010101010101010" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="11011011011011011011" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="11111111111111111111" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="12012012012012012012" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="13013013013013013013" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="14014014014014014014" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="22222222222222222222" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="33333333333333333333" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="44444444444444444444" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="55555555555555555555" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="66666666666666666666" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="77777777777777777777" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="88888888888888888888" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
<Data Code="99999999999999999999" Actor="0001" Actdate="20110709" WrongCode="False" TOCorpID="LAP001" OwnerID="" CorpOrderID="Out_20110528001" />
</DataField>
</Event>
</Events>
</Document>
</xml>
</log_x005F_xml>

谢谢各位了
...全文

相关推荐

评论 12
收藏 已收藏
分享
返回顶部
mingrui99
疑难问题 22,298 成员 121,727 内容