Oracle
 sql >> Database >  >> RDS >> Oracle

Analisi XML in Oracle pl/sql

Penso che ci siano due cose che hai sbagliato qui:

  • Innanzitutto, la tua espressione XPath //@GovernmentCode/ è sbagliato. Non dovrebbe avere un / finale e non vuoi il @ sia perché GovernmentCode è un elemento, non un attributo.

  • In secondo luogo, devi specificare la dichiarazione dello spazio dei nomi XML nella tua chiamata a EXTRACTVALUE così come nella tua chiamata a EXTRACT .

Apportare queste modifiche ti lascia con il codice seguente. L'ho fatto un rapido test e sembrava funzionare:

SELECT EXTRACTVALUE (VALUE (xml_list), '//GovernmentCode', 'xmlns="http://www.irs.gov/efile"') AS SysID
  INTO lv_transid      
  FROM TABLE (
            XMLSEQUENCE (
               EXTRACT (in_xmlclob, '/AckTransmission/Acknowledgement',
                        'xmlns="http://www.irs.gov/efile"'))) xml_list;