sql >> データベース >  >> RDS >> Oracle

Oracle XMLQuery が名前空間を破損しています

    My Oracle Support によると、これは予想される動作のようです。 ドキュメント ID 2060374.1。しかし、ちょっとした実験から、XPath で名前空間をワイルドカード化すると、それが起こらなくなるようです。そう:

      <patent>{$m/*:patent/@*}
      {
        for $i in $m/*:patent/*
            return    $i
      }
      </patent>' 
    

    元のデータ (11.2.0.4) を使用して、より読みやすくフォーマットするためにシリアル化します:

     WITH tmpTable AS (
    SELECT * FROM XML_DOCUMENT_TMP cm )
    SELECT tt.xml_data ,
    XMLSerialize(DOCUMENT
    XMLQuery('declare default element namespace  "http://schemas.thomson.com/ts/20041221/tsip";
          declare namespace  tsip="http://schemas.thomson.com/ts/20041221/tsip";
          declare namespace  tsxm="http://schemas.thomson.com/ts/20041221/tsxm";
    
          let $patsLus := $m/patent/*
    
          return          
          <patent>{$m/*:patent/@*}
          {
            for $i in $m/*:patent/*
                return    $i
          }
          </patent>' 
                PASSING tt.xml_data as "m"   RETURNING CONTENT)
     AS VARCHAR2(4000) INDENT SIZE = 2) ewXml 
     FROM tmpTable tt
     WHERE tt.document_id in (1);
    
    XML_DATA
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    NEWXML
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    <patent xmlns="http://schemas.thomson.com/ts/20041221/tsip" xmlns:tsip="http://schemas.thomson.com/ts/20041221/tsip" xmlns:tsxm="http://schemas.thomson.com/ts/20041221/tsxm" tsip:action="replace" tsip:cc="CA" tsip:se="2715340" tsi
    p:ki="C">
      <accessions tsip:action="replace">
        <accession tsip:src="wila" tsip:type="key">CA-2715340-C</accession>
        <accession tsip:src="tscm" tsip:type="tscmKey">CA-2715340-C-20150804</accession>
      </accessions>
      <claimed tsip:action="replace">
        <claimsTsxm tsip:lang="en">
          <tsxm:heading tsxm:align="left">We Claim:</tsxm:heading>
          <claimTsxm tsip:no="1" tsxm:num="1" tsip:type="main">1.  power.</claimTsxm>
        </claimsTsxm>
      </claimed>
    </patent>
    <patent xmlns="http://schemas.thomson.com/ts/20041221/tsip" xmlns:tsip="http://schemas.thomson.com/ts/20041221/tsip" tsip:action="replace" tsip:cc="CA" tsip:se="2715340" tsip:ki="C">                                                
      <accessions xmlns="http://schemas.thomson.com/ts/20041221/tsip" xmlns:tsip="http://schemas.thomson.com/ts/20041221/tsip" tsip:action="replace">                                                                                     
        <accession tsip:src="wila" tsip:type="key">CA-2715340-C</accession>                                                                                                                                                               
        <accession tsip:src="tscm" tsip:type="tscmKey">CA-2715340-C-20150804</accession>                                                                                                                                                  
      </accessions>                                                                                                                                                                                                                       
      <claimed xmlns="http://schemas.thomson.com/ts/20041221/tsip" xmlns:tsip="http://schemas.thomson.com/ts/20041221/tsip" tsip:action="replace">                                                                                        
        <claimsTsxm tsip:lang="en">                                                                                                                                                                                                       
          <tsxm:heading xmlns:tsxm="http://schemas.thomson.com/ts/20041221/tsxm" tsxm:align="left">We Claim:</tsxm:heading>                                                                                                               
          <claimTsxm tsip:no="1" xmlns:tsxm="http://schemas.thomson.com/ts/20041221/tsxm" tsxm:num="1" tsip:type="main">1.  power.</claimTsxm>                                                                                            
        </claimsTsxm>                                                                                                                                                                                                                     
      </claimed>                                                                                                                                                                                                                          
    </patent>                                                                                                                                                                                                                             
    

    これは元のものと同じではありませんが、名前空間の破損はもうありません。実際のクエリでそれを実行できるかどうか、およびワイルドカードが問題を引き起こすかどうかは別の問題です...




    1. Tomcatコンテナのどこにc3p0依存関係を置くか

    2. JDBCパラメーターverifyServerCertificate=falseは、clientkeystoreとtruststoreを必要とせずに接続します

    3. C# アプリから Oracle 10g データベースへの接続を確認する

    4. SQL Server Compact 3.5 / 4 を ASP .NET MVC 2 で動作させることができません