Pessoal, tenho a seguinte situação.
Estou lendo arquivos XML com o extractvalue e estava tudo funcionando normal. Os arquivos que eu vinha recebendo seguiam essa padrão:
Selecionar tudo
<?xml version="1.0" encoding="UTF-8" ?>
<nfeProc versao="1.10" xmlns="http://www.portalfiscal.inf.br/nfe">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="NFe35100757422040000149550010000000130000900877" versao="1.10">
<ide>
<cUF>35</cUF>
<cNF>000090087</cNF>
<natOp>VENDA</natOp>
<indPag>1</indPag>
<mod>55</mod>
<serie>1</serie>
<nNF>13</nNF>
<dEmi>2010-07-28</dEmi>
<tpNF>1</tpNF>
<cMunFG>3552502</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>7</cDV>
<tpAmb>1</tpAmb>
<finNFe>1</finNFe>
<procEmi>3</procEmi>
<verProc>1.4.2</verProc>
</ide>
A query que uso para extrair dados desse xml é a seguinte:
Selecionar tudo
SELECT EXTRACTVALUE(T.XML_NFE,
'/nfeProc/NFe/infNFe/@Id',
'xmlns="http://www.portalfiscal.inf.br/nfe"')
FROM NFE_XML T
Porém, recebi dias atrás um xml da seguinte forma:
Selecionar tudo
<nfeProc versao="2.00">
<NFe xmlns="http://www.portalfiscal.inf.br/nfe">
<infNFe xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Id="NFe35100743283811003922550010000234971001098588" versao="2.00">
<ide>
<cUF>35</cUF>
<cNF>00109858</cNF>
<natOp>SAIDA DE VENDA</natOp>
<indPag>0</indPag>
<mod>55</mod>
<serie>1</serie>
<nNF>23497</nNF>
<dEmi>2010-07-16</dEmi>
<tpNF>1</tpNF>
<cMunFG>3505708</cMunFG>
<tpImp>1</tpImp>
<tpEmis>1</tpEmis>
<cDV>8</cDV>
<tpAmb>1</tpAmb>
<finNFe>1</finNFe>
<procEmi>0</procEmi>
<verProc>DllZinha 1.0</verProc>
</ide>
Com esse novo xml a query retorna sempre null.
Aparentemente há poucas diferenças entre os dois arquivos. Algumas informações de versão na primeira linha.
Que no segundo arquivo não tem o
e a informação
, que eu desconfio ser o problema.
Tentei mudar o parâmetro de xmlns da query, ficando dessa forma:
Selecionar tudo
SELECT EXTRACTVALUE(T.XML_NFE,
'/nfeProc/NFe/infNFe/@Id',
'xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
FROM NFE_XML T
E também dessa forma:
Selecionar tudo
SELECT EXTRACTVALUE(T.XML_NFE,
'/nfeProc/NFe/infNFe/@Id',
'xmlns="http://www.portalfiscal.inf.br/nfe" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"')
FROM NFE_XML T
Mas nada disso funcionou. Alguém tem idéia do que pode estar errado?