Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

mendapatkan nama dan nilai dari atribut xmltype di Oracle

Anda hampir sampai di sana dengan upaya pertama Anda. Saat mengevaluasi XPath, saat Anda berada di dalam daftar atribut dengan /TableAConfig/@* , Anda tidak perlu text() untuk mendapatkan nilai atribut di dalamnya. Anda sudah berada di level atribut, jadi cukup gunakan . untuk simpul saat ini sudah cukup.

Jadi cobalah sesuatu seperti ini -

SELECT XMLElement("TableAConfigList",
    (SELECT
        XMLAgg(
           XMLElement("TableAConfig",
                XMLAttributes(
                    tmp."attr_name" as "name",
                    tmp."attr_text" as "value"
                )
            )
        ) from XMLTable('/TableAConfig/@*'
            passing TableA.TableA_config
            columns
               "attr_name" varchar(30) path 'name()',
               "attr_text" varchar(30) path '.'
        ) tmp
    )
) from dual

Satu-satunya perbedaan dari upaya pertama Anda adalah xpath dari value atribut.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. sql - ORA-00937:bukan fungsi grup grup tunggal

  2. Parameter String keluaran ODP.NET tidak mengembalikan nilai

  3. Mengonversi kueri oracle ke kueri MySQL

  4. Tidak dapat menggunakan DROP TABLE JIKA ADA di schema.sql untuk aplikasi Spring Boot

  5. Nama pengguna atau peran umum tidak valid