码迷,mamicode.com
首页 > 数据库 > 详细

把xml数据直接插入到sqlserver数据库

时间:2015-07-08 18:29:02      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:

存储过程:

ALTER proc [ali].[ins_冻结金额表]
@xmldoc varchar(max),
@userGid varchar(100)
as
declare @idoc int

exec sp_xml_preparedocument @idoc output,@xmldoc

insert into ali.user冻结金额表
select newid(),@userGid,*,getdate() from openxml(@idoc,/alipay_user_account_freeze_get_response/freeze_items/account_freeze,2)  
with(freeze_amount decimal(18,2),freeze_name varchar(50),freeze_type varchar(50))  

exec sp_xml_removedocument @idoc -- 释放内存,因为调用sp_xml_preparedocument 时,会占用sqlserver总内存的 八分之一,所以用完要立即消除

因为执行 sp_xml_preparedocument   时有可能会返回一个 “文本内容中发现无效字符”错误( 出现原因是xml中存在汉字),需要在xml里加入头部信息,如果 xml为varchar,则加入<?xml version="1.0" encoding="gb2312" ?> , 或者 直接把 xml类型改成nvarchar,就不会出现错误了

把xml数据直接插入到sqlserver数据库

标签:

原文地址:http://www.cnblogs.com/zhanglifeng/p/4630847.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!