我的程序是这样写的
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 @xml2 xml
declare @title varchar(1000)
declare @title1 varchar(3000)
declare @title2 varchar(3000)
declare @tkdat varchar(100)
declare @tkdat1 varchar(100)
declare @custom varchar(100)
declare @xml1 xml
--set codepage = 65001
set @custom='LAP001'
--if @custom is null or @custom=''
--begin
-- set @return='客户号为空'
-- return 1
--end
--如下使用的是输出用的XML
delete xtab
--create table xtab(xx varchar(max))
insert into xtab values('<?xml version="1.0" encoding="UTF-8" ?>')
insert into xtab values('<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XML Schema-3.0.xsd" Version="3.0">')
insert into xtab values('<Events><Event name="SalesWareHouseOut" MainAction="WareHouseOut"><DataField>')
--如下生成的保存在log_xml中
set @xml='<?xml version="1.0" encoding="UTF-8"?>'
set @xml=@xml+'<Document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="XML Schema-3.0.xsd" 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, getdate(), 120 )
insert into xtab values('<Data Code="'+@barcode+'" CorpOrderID="'+@ordno+'" Actor="" ActDate="'+@tkdat+'" WrongCode="False" ToCorpID="'+@custom+'" OwnerCorpID="" />')
set @xml=@xml+'<Data Code="'+@barcode+'" CorpOrderID="'+@ordno+'" Actor="" ActDate="'+@tkdat+'" WrongCode="False" ToCorpID="'+@custom+'" OwnerCorpID="" />'
fetch next from cu_barcode into @ordno,@itmno,@barcode,@actdate,@custom
end
set @xml=@xml+'</DataField></Event></Events></Document>'
insert into xtab values('</DataField></Event></Events></Document>')
insert into log_xml(xml,custom)
values(@xml,@custom)
set @title1=@custom
set @title1='bcp data_anyang..xtab out c:/xml/'+@title1+'.xml -c -T -k'
exec master..xp_cmdshell @title1
CLOSE cu_barcode
DEALLOCATE cu_barcode
8 个解决方案
#1
自己顶一下
#2
通常我会用notepad++转换编码格式。
#3
具体说一下好吗
#4
比较丢人的方式。你用了就明白。
#5
try
bcp里指定-w选项。
bcp里指定-w选项。
#6
案例代码如下供参考,最近刚好在做XML的程序..
--建测试表
create table xtab (xx varchar(max))
--加文件头,指定编码格式.
insert into xtab values('<?xml version="1.0" encoding="UTF-8"?>')
insert into xtab values('<xmlcode>')
--加文件内容(XML)
declare @x xml
set @x=(select name,xtype from sysobjects for xml auto)
insert into xtab select cast(@x as varchar(max))
--加文件尾
insert into xtab values('</xmlcode>')
select * from xtab
--导出为XML文件
exec master..xp_cmdshell 'bcp mydb.dbo.xtab out c:/0710.xml -c -T -k'
-- 结果 c:/0710.xml
--<?xml version="1.0" encoding="UTF-8"?>
--<xmlcode>
--....
--</xmlcode>
#7
以上只是给个例子,说明可以很*的定义XML格式.
具体的XML要什么内容要参照来套用修改一下.
具体的XML要什么内容要参照来套用修改一下.
#8
已经用asp.net搞定了,SQL2008不支持UTF-8编码格式的XML文件的输出。还是谢谢各位了!
#1
自己顶一下
#2
通常我会用notepad++转换编码格式。
#3
具体说一下好吗
#4
比较丢人的方式。你用了就明白。
#5
try
bcp里指定-w选项。
bcp里指定-w选项。
#6
案例代码如下供参考,最近刚好在做XML的程序..
--建测试表
create table xtab (xx varchar(max))
--加文件头,指定编码格式.
insert into xtab values('<?xml version="1.0" encoding="UTF-8"?>')
insert into xtab values('<xmlcode>')
--加文件内容(XML)
declare @x xml
set @x=(select name,xtype from sysobjects for xml auto)
insert into xtab select cast(@x as varchar(max))
--加文件尾
insert into xtab values('</xmlcode>')
select * from xtab
--导出为XML文件
exec master..xp_cmdshell 'bcp mydb.dbo.xtab out c:/0710.xml -c -T -k'
-- 结果 c:/0710.xml
--<?xml version="1.0" encoding="UTF-8"?>
--<xmlcode>
--....
--</xmlcode>
#7
以上只是给个例子,说明可以很*的定义XML格式.
具体的XML要什么内容要参照来套用修改一下.
具体的XML要什么内容要参照来套用修改一下.
#8
已经用asp.net搞定了,SQL2008不支持UTF-8编码格式的XML文件的输出。还是谢谢各位了!