Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Análise XML no Oracle pl/sql


Acho que tem duas coisas erradas aqui:

  • Em primeiro lugar, sua expressão XPath //@GovernmentCode/ está errado. Não deve ter um / à direita , e você não quer o @ seja porque GovernmentCode é um elemento, não um atributo.

  • Em segundo lugar, você deve especificar a declaração de namespace XML em sua chamada para EXTRACTVALUE bem como em sua chamada para EXTRACT .

Fazer essas alterações deixa você com o código a seguir. Fiz um teste rápido e funcionou:
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;