zoukankan      html  css  js  c++  java
  • SQL SERVER 解析XML到数据库表

    //片段1
     IF OBJECT_ID('tempdb..#TEMP'IS NOT NULL
     BEGIN
         DROP TABLE  #TEMP
     END
     
     CREATE TABLE #TEMP
     ( 
          title VARCHAR(40)
         ,author VARCHAR(40)
         ,price VARCHAR(40
     )
     
     DECLARE @xmlDoc XML
     SET @xmlDoc='
     <books>
          <book id="0001">
               <title>C</title>
               <author>David</author>
               <price>21</price>
          </book>
          <book id="0002">
               <title>JAVA</title>
               <author>Jeriffe</author>
               <price>40</price>
          </book>
     </books>
    '
     
     SELECT @xmlDoc.query('(/*)')
     SELECT @xmlDoc.query('(/books)'
     SELECT @xmlDoc.query('(/books/book)')
     
     SELECT @xmlDoc.value('(/books/book/author)[last()]','varchar(40)')  
     SELECT @xmlDoc.value('(/books/book[position()>1]/author)[1]','varchar(40)'
      
     SELECT T.C.query('(author)'AS AuthorNode FROM @xmlDoc.nodes('/books/book'AS T ( C )
     
     SELECT T.C.value('(./author)[1]','varchar(40)'AS Author FROM @xmlDoc.nodes('/books/book'AS T ( C )
     SELECT T.C.value('(author)[1]','varchar(40)'AS Author FROM @xmlDoc.nodes('/books/book'AS T ( C )
     
     INSERT INTO #TEMP (title,author,price)
      SELECT 
          T.C.value('(./title)[1]''varchar(40)'
         ,T.C.value('(./author)[1]''varchar(40)'
         ,T.C.value('(./price)[1]''varchar(40)'
       FROM @xmlDoc.nodes('/books/book'AS T ( C )

     SELECT * FROM #temp  

     //片段2

    DECLARE@ImageNames XML
    SET @ImageNames=
    '<ImageNames>
        <ImageName>20-144-402-01.jpg</ImageName>
        <ImageName>20-144-402-02.jpg</ImageName>
        <ImageName>20-144-402-03.jpg</ImageName>
        <ImageName>20-144-402-04.jpg</ImageName>
    </ImageNames>'

    DECLARE @ImageNameTable TABLE
    (
        ID INT IDENTITY(1,1PRIMARY KEY,
        ImageName CHAR(30)
    )
    INSERT INTO @ImageNameTable
    (
        ImageName
    )
    SELECT
       T.C.value('(.)[1]''varchar(80)'AS ImageName
    FROM @ImageNames.nodes('/ImageNames/ImageName'AS T ( C )

    SELECT 
        ImageName 
    FROM @ImageNameTable

    //Result:

    ImageName
    20-144-402-01.jpg             
    20-144-402-02.jpg             
    20-144-402-03.jpg             
    20-144-402-04.jpg 
  • 相关阅读:
    bash的for循环从命令读取值
    BFS-hdu-1226-超级密码
    计算机改名导致数据库链接的诡异问题
    There is insufficient system memory to run this query 错误
    SQL Server 2008 R2的发布订阅配置实践
    MS SQL 日常维护管理常用脚本(二)
    TreeSize工具介绍
    迁移Reporting Services的方法与WMI错误
    spring-session-data-redis解决session共享的问题
    elasticSearch6源码分析(12)DiscoveryModule
  • 原文地址:https://www.cnblogs.com/jeriffe/p/2037412.html
Copyright © 2011-2022 走看看