Oracle
 sql >> Base de données >  >> RDS >> Oracle

Analyse XML dans oracle pl/sql

Je pense qu'il y a deux choses que vous avez mal ici :

  • Tout d'abord, votre expression XPath //@GovernmentCode/ est faux. Il ne doit pas avoir de / à la fin , et vous ne voulez pas le @ soit parce que GovernmentCode est un élément, pas un attribut.

  • Deuxièmement, vous devez spécifier la déclaration d'espace de noms XML dans votre appel à EXTRACTVALUE ainsi que dans votre appel à EXTRACT .

Apporter ces modifications vous laisse avec le code suivant. Je lui ai fait un test rapide, et cela a semblé fonctionner :

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;