SqlServer中以xml作为参数创建表格的存储过程

用到的工具:

  • SqlServer
  • java
  • mybatis

第一步:创建function,用于获取xml中的数据

 CREATE function create_table (@str xml)
 returns @tb table(sourceId varchar(20))
 as
 begin
      insert into @tb
         SELECT
         v.value(‘@sourceId[1]‘,‘VARCHAR(20)‘) AS sourceId
        FROM @str.nodes(‘/RSSsources/rssSource‘) x(v)
    return
 end

第二步:用存储过程调用上面的函数创建表格

CREATE PROCEDURE T_PRO(@doc xml)
 AS
 BEGIN

     CREATE TABLE tbl(sourceId varchar(20))
     INSERT INTO tbl
     select b.sourceId from
     create_table(@doc) b
 END

第三步:在数据库中调用存储过程

 DECLARE @doc xml
 SET @doc = ‘<RSSsources><rssSource sourceId="1"/><rssSource sourceId="2"/><rssSource sourceId="3"/><rssSource sourceId="4"/></RSSsources>‘

 EXEC T_PRO @doc

第四步:mybatis调用存储过程

<select id="createTable" statementType="CALLABLE" resultType="string">
        {call T_PRO(#{xml})}
</select>

第五步:java程序中调用存储过程

SqlSessionFactory factory = GetSqlSessionFactory.getInstance();
SqlSession sqlSession = factory.openSession();
NewsInfoMapper mapper = sqlSession.getMapper(NewsInfoMapper.class);
String sourceXml = "<RSSsources><rssSource sourceId=\"1\"/><rssSource sourceId=\"2\"/><rssSource sourceId=\"3\"/><rssSource sourceId="4"/></RSSsources>";
mapper.createTable(sourceXml);
sqlSession.commit();
sqlSession.close();
时间: 2024-10-10 22:06:35

SqlServer中以xml作为参数创建表格的存储过程的相关文章

SqlServer 中 for xml path 相关

表结构: typename varchar(50) typedesc varchar(50) 示例 SQL 语句: SELECT '{"'+TypeName, '":"', TypeDesc + '"}',',' FROM dbo.SYS_DicEnumType FOR XML PATH('') 这样就可以得到一个比较接近 JSON 格式的字符串,如下: {"Gender":"性别"},{"Degree":

sqlserver中对xml进行操作

1 --1.创建xml测试数据库表Xml_Table 2 use Fly_Test --测试数据库 3 go 4 5 create table Xml_Table(ID INT identity PRIMARY KEY, XmlData XML); 6 --2.插入测试数据 7 insert into Xml_Table(XmlData) values 8 ('<book id="0001"> 9 <title>SqlServer2005</title&g

QQ listView 中的 xml 的参数设置?

今天,需要做一个及时通讯的lsitView.原本以为 找一个ListVIew 直接就解决了.可是并不是那么简单. 1.当数据量少的时候   数据在listView的顶部. 2.当数据量多的时候   只显示 listView底部的数据, 3,数据刷新的时候,  数据在listView也需要 刷新 1 2 的解决方案: android:transcriptMode="alwaysScroll" android:stackFromBottom="false" <Li

知方可补不足~sqlserver中对xml类型字段的操作

回到目录 在sqlserver中有很多种数据类型,而XML数据类型是比较新奇怪的一种格式,我们平常接触的可能比较少,用的也少,而在某些场合,使用XML类型可能会使我们的开发变简单,下面就是一种情况: 表test有字段Menu,它保存的信息可能有两种方式,对标准menu,扩展menu,自定义Menu等,而这些方式所需要的键/值是不同的,有些同学会说使用Json串来存储,这当然是一种很不错的方式,但是数据库并没有这种类型,所以在查询,聚合时非常困难,这些我们想到了xml格式,它是SQLSERVER的

.NET中的XML注释(一) 创建帮助文档

一.摘要 在本系列的第一篇文章介绍了.NET中XML注释的用途, 本篇文章将讲解如何使用XML注释生成与MSDN一样的帮助文件.主要介绍NDoc的继承者:SandCastle. 二.背景 要生成帮助文件,很多人会想到NDoc.其实在VS2003中不使用NDoc也一样具有"生成Web文档"的功能.然而很不幸,在升级为VS2005和VS2008后, Visual Studio中的此功能已经取消. 更遗憾的是NDoc这个项目由于资金等问题,作者Kevin于2006年7月宣布不再投入NDoc开

Sql语句在SqlServer中创建数据库、表格并添加约束

通过Sql语句来创建数据库与架构 创建数据库 数据库的创建首先是要引用主数据库的,需要在master数据库的环境下进行创建.大致的语法如下: 1 -- 使用master数据库 2 use master 3 -- 创建数据库 4 create datebase [架构名.]数据库名 5 on [primary]--主文件数据描述 6 ( 7 name = '数据库逻辑名', --一般是数据库的名称 8 filename = '数据文件的名字',--全路径 9 size = 12mb, --数据文件

XML 在SQLServer中的使用

SQL Server对于XML支持的核心在于XML数据的格式,这种数据类型可以将XML的数据存储于数据库的对象中,比如variables, columns, and parameters.当你用XML数据类型配置这些对象中的一个时,你指定类型的名字就像你在SQLServer 中指定一个类型一样. XML的数据类型确保了你的XML数据被完好的构建保存,同时也符合ISO的标准.在定义一个XML数据类型之前,我们首先要知道它的几种限制,如下: 一个实例的XML列不能包含超过2GB的数据. 一个XML的

SqlServer中创建Oracle连接服务器

转自太祖元年的:http://www.cnblogs.com/jirglt/archive/2012/06/10/2544025.html参考:http://down.51cto.com/data/910072SqlServer中创建Oracle连接服务器 第一种:界面操作 (1)展开服务器对象-->链接服务器-->右击“新建链接服务器”(2)输入链接服务器的IP (3)链接成功后 第二种:语句操作 注:需要提前安装Oracle客户端程序,重启机器.(如果没有Oracle客户端程序,提示“未找

01_MyBatis EHCache集成及所需jar包,ehcache.xml配置文件参数配置及mapper中的参数配置

 1 与mybatis集成时需要的jar ehcache-core-2.6.5.jar mybatis-ehcache-1.0.2.jar Mybatis.日志.EHCache所需要的jar包如下: 2 EHCache与mybatis集成 EHCache是一种广泛使用java分布式缓存通用缓存,JavaEE中的一个轻量级的容器. EHCache集成是基于ehcache-core,没有任何其它第三方应用程序. 想使用EHCache到她们的应用程序的用户,必须下载EHCache的zip bund