ms sql server读取xml文件存储过程-sp_xml_preparedocument
最近要在存储过程中读取xml中节点的值,然后进行sql操作;
要使用到的系统存储过程如下:sp_xml_preparedocument
create procedure [dbo].[pro_Test_Readxml] @sData ntextas --XML 定义变量 并 解析赋值 declare @xmldata_id int exec sp_xml_preparedocument @xmldata_id output,@sDatadeclare @sPage int --页码 select @sPage=page from openxml(@xmldata_id,'/DataTable/diffgr/NewDataSet/PARAMS',2)with (page int)declare @sRp int --每页记录数 select @sRp =rp from openxml(@xmldata_id,'/DataTable/diffgr/NewDataSet/PARAMS',2) with (rp int)declare @sZjlx varchar(10)--证件类型 select @sZjlx =zjlb from openxml(@xmldata_id,'/DataTable/diffgr/NewDataSet/PARAMS',2) with (zjlb varchar(10))declare @sZjhm varchar(50) --证件号码 select @sZjhm =zjhm from openxml(@xmldata_id,'/DataTable/diffgr/NewDataSet/PARAMS',2) with (zjhm varchar(50))declare @sFlag varchar(50) --标志 select @sFlag =flag from openxml(@xmldata_id,'/DataTable/diffgr/NewDataSet/PARAMS',2) with (flag varchar(50))exec sp_xml_removedocument @xmldata_id if @@ERROR <> 0 beginselect '解析xml数据失败!'return enddeclare @iRecBegin varchar(6),@iRecEnd varchar(6),@sSql varchar(1000),@sSqlText varchar(3000) if(@sRp <>'' and @sPage <> '') beginselect @iRecBegin=@sRp * (@sPage -1)+1,@iRecEnd=@sRp * @sPage end else beginselect @iRecBegin =1,@iRecEnd=20 endselect @sSql = '',@sSqlText =''if ISNULL(@sZjlx,'')<>'' beginif @sZjlx ='99'select @sSql =@sSql+''--sql endif ISNULL(@sFlag,'')<>'' beginbeginselect @sSqlText =''+@sSql;---sqlend --print @sSqlText EXEC(@sSqlText)GO
执行如下:
EXEC pro_Test_Readxml '<DataTable><diffgr><NewDataSet><PARAMS><page>1</page><rp>10</rp><zjlb>99</zjlb><zjhm>31011600101000120141211155030551</zjhm><falg>1</flag></PARAMS></NewDataSet></diffgr></DataTable>'
一个完整的例子:
create procedure [dbo].[usp_Jb_Zlzfx_Gwsc]@sData ntextas set nocount ondeclare @idoc int exec sp_xml_preparedocument @idoc output ,@sData select * into #TMP_PARAS from OpenXML(@idoc,'PARAS/ITEM',2) with(XM varchar(50),ZZSCFS varchar(30),DCYSXM varchar(50),DCRQ varchar(10),INFO varchar(1000) ) exec sp_xml_removedocument @idoc if @@ERROR <> 0 beginselect 'F' as RST ,'1.解析XML数据失败!' as MSGreturn endselect * FROM #TMP_PARAS
执行:
exec usp_Jb_Zlzfx_Gwsc '<PARAS><ITEM><XM>张三</XM><ZZSCFS>1</ZZSCFS><DCYSXM>魏飞</DCYSXM><DCRQ>2016-12-06</DCRQ><INFO>text</INFO></ITEM></PARAS>'
转载于:https://www.cnblogs.com/hoaprox/p/6004591.html
ms sql server读取xml文件存储过程-sp_xml_preparedocument相关推荐
- 公司招聘软件研发程序员的一道考题--MS SQL Server数据库数据文件页面头部结构...
有一次在招聘C++程序员时,出的一道考题,内容其实就是MS SQL Server数据库数据文件页面头部结构,如下: 有个file.a文件,这个文件以16sec[sec是扇区,每个sec包含512个By ...
- MS SQL SERVER 读取数据库中每个表的描述/注释以及表中字段/列的字段名,字段类型,字段描述/注释/说明等信息...
SELECT 表名 = CASE WHEN a.colorder=1 THEN d.nameELSE ''END,表说明 = CASE WHEN a.colorder=1 THEN ISNULL(f. ...
- iBatis自动生成的主键 (Oracle,MS Sql Server,MySQL)【转】
iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pre)还是后生成(post). Oracle设置 Xml代码 <!-- O ...
- ibatis中主键自动增长(Oracle,Ms sql server ,mysql)
http://morning2008.iteye.com/blog/611528 iBatis的sqlMap配置文件的selectKey元素有个type属性,可以指定pre或者post表示前生成(pr ...
- SQL Server中读取XML文件的简单做法
SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦.本文介绍在SQL Server中读取XML文件的简单做法. ...
- [转帖]C#执行SQL脚本,读取XML文件
[转帖]C#执行SQL脚本,读取XML文件 需要添加如下引用: using System.IO; using System.Data.SqlClient; using System.Collectio ...
- 易语言 存储过程 mysql_在易语言中调用MS SQL SERVER数据库存储过程(Transact-SQL)方法总结...
作者:liigo 日期:2010/8/25 Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接 ...
- 重装MS SQL Server 2000前必须彻底删除原安装文件!
今天重装MS SQL Server 2000,装了几次都提示出错,查看事件,显示 driver={sql server};server=harry;UID=sa;PWD=;database=maste ...
- PHP(2):PHP读取MS Sql Server 2014数据库数据
前面使用VBS将Excel数据写入到了Ms Sql Server 2014的数据库,现在要将记录显示出来,本来打算用IIS+ASP.net,可是9月份安装好Apache+PHP后一直没有写过PHP代码 ...
最新文章
- 初中信息技术说课python_第一单元 走进Python 编程世界
- 基于FPGA的HDB3数字编码器设计
- 李永乐线性代数2020年基础课手写笔记汇总
- libsvm 训练后,模型参数详解
- 服务器新建项目,Perfect(swift) 搭建服务器之新建项目
- Android 实用开源控件
- .NET Core Web APi大文件分片上传研究
- JDBC连接(MySql)数据库步骤,以及查询、插入、删除、更新等十一个处理数据库信息的功能。...
- P4271 [USACO18FEB]New Barns
- 08TensorFlow2.0基础--8.2创建张量
- android.support.v4.app.Fragment和android.app.Fragment区别
- EditPlus Version 3 价格 代理商 销售价格 正版软件价格
- IDAutomation的条形码字体和工具集TrueType Font Package
- 一级导航,二级导航,三级导航介绍
- 从朋友测试ISAC和SILK效果到二者理论比较
- 程序员朋友们,请答应我?别再去东南亚写代码了好么?
- 微信小游戏获取排行榜
- 外贸软件进出口内贸综合型管理解决方案
- 理解DC中的link_library与target_library
- Java-Collection集合和Map集合总结
热门文章
- python高级编程第3版导图_流弊!一张图完美解释 Python 3 全部用法
- pip安装pycurl报错
- 并发控制——封锁、活锁和死锁
- 介绍一下逻辑地址和物理地址
- Java+springboot+Mysql 大学生综合素质测评系统51615-计算机毕业设计(赠源码)
- 山东财经大学新生赛暨天梯赛选拔赛 F.简单排序(思维)
- Java常见面试题:类的加载过程
- 利用BP网络实现非线性函数映射(基于matlab工具箱)
- HTML中表单的各类按钮(新手)
- 关于 Office的Error 1935(HRESULT:0x8007054F)的修复