zoukankan      html  css  js  c++  java
  • SSB FAQ (3) – A rowset provider OPENXML

    SSB FAQ (3) – A rowset provider OPENXML

     

    OPENXML provides a rowset view over an XML document.

    OPENXML SYNTAX:

    OPENXML( idoc int [ in] , rowpattern nvarchar [ in ] , [ flags byte [ in ] ] )

    [ WITH ( SchemaDeclaration | TableName ) ]

     

    ARGUMENTS:

    idoc

    Is the document handle of the internal representation of an XML document. The internal representation of an XML document is created by calling sp_xml_preparedocument.

     

    rowpattern

    Is the XPath pattern used to identify the nodes to be processed as rows.

     

    flags 参数值设置为 1,表示以属性为中心的映射。

    flags 设置为 2 时(表示以元素为中心的映射)。

    Default value is 0, attribute-centric mapping.

     

    CODE SNIPPET:

    At first, send a message to target queue, and use the following SELECT script to check the XML message:

    Select top 1 Cast(message_body as XML) From Queue_OutStock_Out

    OUT XML MESSAGE:

    <ROOT><OutStock><CustomerSysNo>212003</CustomerSysNo><SOAmt>120</SOAmt></OutStock></ROOT>

     

    ……. Retrieve XML message from target queue and handle it:

           if @message_type_name = 'SendMessageType_OutStock'

           BEGIN

               Declare @docHandle int

               EXEC sp_xml_preparedocument @docHandle OUTPUT, @message_body

               Select @CustomerSysNo=CustomerSysNo, @SOAmt=SOAmt

                  From OPENXML(@docHandle, '/ROOT/OutStock', 2)

                  With (CustomerSysNo int, SOAmt decimal)

               print @CustomerSysNo

               print @SOAmt

               EXEC sp_xml_removedocument @docHandle

    ……

    First, sp_xml_preparedocument is called to obtain a document handle. This document handle is passed to OPENXML.

    Because the WITH clause is not provided, OPENXML returns the rowset in an edge table format.

     

    Then the SELECT statement retrieves all the columns in the edge table.

    Finally, sp_xml_removedocument is used to free up the memory.

     

     

     

  • 相关阅读:
    API文档大集合
    jenkins 构建 job 并获取其状态的实现
    jenkins 插件乱码处理与文件上传
    更优雅的配置:docker/运维/业务中的环境变量
    部署仓库中 nginx 下游依赖配置改进
    dotnet core 在 MIPS64 下的移值进度:EA 版本已经发布
    tmux 编译安装过程
    各数据源的时间/日期的提取能力对比
    关于若干性能指标的阐述
    为缓存、外部接口调用添加超时处理
  • 原文地址:https://www.cnblogs.com/rickie/p/605434.html
Copyright © 2011-2022 走看看