把xml数据直接插入到sqlserver数据库
时间:2021-07-01 10:21:17
帮助过:3人阅读
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数据库
标签: