发布网友 发布时间:2022-04-08 01:40
共2个回答
懂视网 时间:2022-04-08 06:01
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数据库
标签:
热心网友 时间:2022-04-08 03:09
把所有内容插到一个数据库中的文本类型的字段就行了啊,比如varchar text类型的字段都可以,要的时候再读出来就行