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 
  • 相关阅读:
    Java异常处理机制(转)
    深入探讨 java.lang.ref 包(转)
    一篇不错的讲解Java异常的文章
    Java国际化学习(一)介绍
    Java泛型集合排序(转)
    Java常见异常总结 (转)
    java中的异常处理机制
    深入分析 Java I/O 的工作机制(转)
    java里BufferedReader和Scanner
    JS深入学习知识整理
  • 原文地址:https://www.cnblogs.com/jeriffe/p/2037412.html
Copyright © 2011-2022 走看看