sql >> Base de Datos >  >> RDS >> Oracle

Análisis XML en Oracle pl/sql

Creo que hay dos cosas que tienes mal aquí:

  • En primer lugar, su expresión XPath //@GovernmentCode/ Está Mal. No debe tener un final / , y no quieres el @ ya sea porque GovernmentCode es un elemento, no un atributo.

  • En segundo lugar, debe especificar la declaración del espacio de nombres XML en su llamada a EXTRACTVALUE así como en su llamada a EXTRACT .

Hacer estos cambios te deja con el siguiente código. Hice una prueba rápida y pareció funcionar:

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;