1 查看存储过程的方式

  exec sp_helptext 'GetTrackingFeedLogByMaxId'

  select definition from sys.sql_modules
where object_id=(OBJECT_ID(N'GetTrackingFeedLogByMaxId'))

2 在调用有输入参数的存储过程时必须包含参数,除非参数有默认值

3 系统存储过程sp_xml_preparedocument和OPENXML函数来操作传入的xml文档

DECLARE @XMLDocHandle int

declare @xml varchar()='<ROOT>
<CurrencyList FromCurrencyCode="USD" ToCurrencyCode="AUD"></CurrencyList>
<CurrencyList FromCurrencyCode="USD" ToCurrencyCode="EUR"></CurrencyList>
<CurrencyList FromCurrencyCode="USD" ToCurrencyCode="GBP"></CurrencyList>
<CurrencyList FromCurrencyCode="USD" ToCurrencyCode="MXN"></CurrencyList>
</ROOT>
' execute sp_xml_preparedocument @XMLDocHandle output,@xml SELECT FromCurrencyCode,ToCurrencyCode
FROM OPENXML(@XMLDocHandle,'/ROOT/CurrencyList',)
WITH
(
FromCurrencyCode char(),
ToCurrencyCode char()
)

注意变量必须定义为@XMLDocHandle变量

执行效果如下

3 xml作为存储过程的参数示例

--将xml作为存储过程的输入参数
create procedure getCurrentRatesXML
@XMLList varchar(),
@CurrencyRateDate datetime AS
declare @XMLDocHandle int
declare @CurrencyCodeTable table
(
FromCurrencyCode char(),
ToCurrencyCode char()
) --准备xml文档
execute sp_xml_preparedocument @XMLDocHandle output,@XMLList; INSERT INTO @CurrencyCodeTable(FromCurrencyCode,ToCurrencyCode)
SELECT FromCurrencyCode,ToCurrencyCode
FROM OPENXML(@XMLDocHandle,'/ROOT/CurrencyList',)
WITH
(
FromCurrencyCode char(),
ToCurrencyCode char()
); SELECT *
FROM Sales.CurrencyRate cr
JOIN @CurrencyCodeTable TVP
ON cr.FromCurrencyCode=TVP.FromCurrencyCode
AND cr.ToCurrencyCode=TVP.ToCurrencyCode
WHERE CurrencyRateDate=@CurrencyRateDate; --移除文档
execute sp_xml_removedocument @XMLDocHandle;
go

将xml作为输入参数传递给存储过程的更多相关文章

  1. XML中输入特殊符号

    XML中输入特殊符号 周银辉 特殊符号比如 ™, 要在xml中使用的话, 其实和html的转码是一样的, 参考下面这个表(使用十进制编码那一列) 特殊符号 命名实体 十进制编码 特殊符号 命名实体 十 ...

  2. 使用动态SQL处理table_name作为输入参数的存储过程(MySQL)

    关于mysql如何创建和使用存储过程,参考笔记<MySQL存储过程和函数创建>以及官网:https://dev.mysql.com/doc/refman/5.7/en/create-pro ...

  3. 通过Web API调用Action时各种类型输入参数传递值的方法

    本人微信公众号:微软动态CRM专家罗勇 ,回复280或者20180906可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me!我的网站是 www.luoyong.me . Dy ...

  4. oracle执行带输入输入参数的存储过程

    declare a1 ); a2 ); begin PKG_INPATIENT.prc_autojf('Y', a1, a2); end;

  5. SQL Server :Stored procedures存储过程初级篇

    对于SQL Server,我是个拿来主义.很多底层的原理并不了解,就直接模仿拿着来用了,到了报错的时候,才去找原因进而逐步深入底层.我想,是每一次的报错,逼着我一点点进步的吧. 近期由于项目的原因,我 ...

  6. 笔记:MyBatis Mapper XML文件详解 - 映射和参数

    MyBatis 的真正强大在于它的映射语句,也是它的魔力所在.由于它的异常强大,映射器的 XML 文件就显得相对简单.如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% ...

  7. c#中如何执行存储过程

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  8. SQL Server XML数据解析

    --5.读取XML --下面为多种方法从XML中读取EMAIL DECLARE @x XML SELECT @x = ' <People> <dongsheng> <In ...

  9. ORACLE——存储过程

    存储过程procedure 被内容来自<oracle从入门到精通——明日科技>一书 存储过程是一种命名的PL/SQL程序快,存储过程被保存在数据库中,它不可以被SQL语句直接执行或调用,只 ...

随机推荐

  1. ResourceUtils 创建资源目录工具类

    package com.jcf.utilsdemo; import android.content.Context; import android.content.res.Resources; pub ...

  2. Twisted & Treq

    1. Install treq:pip install treq 2. If twisted install failed, please reinstall itpip install twiste ...

  3. Jmeter性能测试工具的使用(Web性能测试)

    Jmeter性能测试工具的使用(Web性能测试) 1.下载 http://pan.baidu.com/s/1o7p18Ye 该软件不用安装,直接解压打开即可使用. 2.使用 这里就在win下进行,图形 ...

  4. [Kaggle] How to kaggle?

    成立于2010年的Kaggle是一个进行数据发掘和预测竞赛的在线平台.与Kaggle合作之后,一家公司可以提供一些数据,进而提出一个问题,Kaggle网站上的计算机科学家和数学家,也就是现在所说的数据 ...

  5. 用shader实现流动的水面(webgl)

    这段时间一直在看如何用shader绘制一个流动的水面,直接用贴图(高度图.法向贴图)实现的方法,这里就不讨论了. 搜了一大波博客资料,感觉存在如下一些问题: 1⃣️大多数资料都是基于opengl实现( ...

  6. LeetCode刷题4——子集

    一.要求 二.知识点 1.回溯算法 回溯算法相当于穷举法加剪枝,回溯算法总是和深度优先同时出现的,采用深度优先策略回溯到根,且根节点的所有子树都被搜索一遍才结束,并剪掉不符合要求的结果 三.解题思路 ...

  7. 李宏毅 Keras手写数字集识别(优化篇)

    在之前的一章中我们讲到的keras手写数字集的识别中,所使用的loss function为‘mse’,即均方差.那我们如何才能知道所得出的结果是不是overfitting?我们通过运行结果中的trai ...

  8. 【miscellaneous】单播、广播和多播IP地址

    转自:http://www.cnblogs.com/gaoxing/archive/2012/02/19/2358484.html 除地址类别外,还可根据传输的消息特征将IP地址分为单播.广播或多播. ...

  9. day32 网络编程之粘包问题

    1.最大半连接数 什么是最大半连接数 半连接:在进行TCP协议通信时,客户端与服务器端进行三次握手建立连接,但是有时客户端与服务器端进行了连接申请,服务器端也同意了申请(既已经完成三次握手的两次),此 ...

  10. 2019/5/13 洛谷P4742 【tarjan缩点 + 拓扑dp】

    题目链接:https://www.luogu.org/problemnew/show/P4742 题目大意:给一张有向图, 每个点都有点权,第一次经过该点时,该点的点权有贡献,求这张图上一条路径(终点 ...