- Este tópico contém 2 respostas, 2 vozes e foi atualizado pela última vez 3 anos, 9 meses atrás por
José Laurindo Chiappa.
-
AutorPosts
-
16 de março de 2022 às 1:56 pm #153831
Francisco Moya
ParticipanteBoa tarde,
Carreguei o XML abaixo em uma tabela, em um campo XMLTYPE, e estou escrevendo um código PL-SQL para pegar o conteúdo das TAGs e gravar em tabelas Oracle na sequencia.
O problema é que não está retornando o conteúdo (no caso o modelo = 65). Vem vazio o resultado do Select…
Alguém poderia por favor me ajudar?
EXEMPLO DO XML (parcial…):
<?xml version=”1.0″?>
-<nfeProc xmlns=”http://www.portalfiscal.inf.br/nfe” versao=”4.00″>
-<NFe xmlns=”http://www.portalfiscal.inf.br/nfe“>
-<infNFe versao=”4.00″ Id=”NFe3322030143898400125065002000638742170xxxxxxx”>
-<ide>
<cUF>33</cUF>
<cNF>70477324</cNF>
<natOp>VENDA DE MERCADORIA CONFORME CFOP</natOp>
<mod>65</mod>
<serie>2</serie>
<nNF>138842</nNF>
<dhEmi>2022-03-03T11:58:40-03:00</dhEmi>CODIFICAÇÃO PL-SQL QUE ESTOU UTILIZANDO:
select ExtractValue(conteudo, ‘/nfeProc/NFe/infNFe/ide/mod’,
‘xmlns=http://www.portalfiscal.inf.br/NFe‘)
from TABELA_XML;o campo conteúdo é XMLTYPE.
17 de março de 2022 às 9:07 am #153879José Laurindo Chiappa
ModeradorBlz ? Então, pra COMEÇO DE CONVERSA ** please ** nos diga a versão E a Edition exatas do SGBD ORACLE, isso tem TUDO A VER, já que nem todas as versões e editions possuem os mesmos recurso no que tange à XML…
Segunda coisa, como não dá erro nenhum, eu SUPONHO FORTEMENTE que seja problema OU de XML mal-formado (talvez com tags forma de ordem, ou coisa do tipo) OU , algo muito possível, presença de caracteres que o parser de XML não reconhece/não espera, como tabs ou quebras de linha, digamos…. Este segundo ponto só podemos Palpitar se vc subir num site de compartilhamento de arquivos qualquer um exemplo CURTO mas COMPLETO do XML em questão, onde o erro Ocorra….
Abraços,
Chiappa
17 de março de 2022 às 9:19 am #153880José Laurindo Chiappa
ModeradorE DOIS pontos que podem se provar CRUCIAIS aí : PRIMEIRO, vc NÃO DIZ CLARAMENTE, mas estou SUPONDO que a query está sendo executada diretamente na linguagem SQL, não dentro de um bloco PL/SQL – sendo isso, ha SIM limites na string que a linguagem SQL pode manipular, e por default é de apenas 4kb, veja se não é isso… E SEGUNDO, pelo xmlns eu DEDUZO que há namespaces envolvidos, https://asktom.oracle.com/pls/apex/asktom.search?tag=extract-an-xml-node por exemplo tem um caso onde era exigido acesso via \ …. Isto é um caso muito antigo, com certeza não deve ser relacionado com versões mais recentes do Oracle (e portanto de parser XML mais recentes) mas deve ser visto, e é POR ISSO que reputei como CRICUAL a info de versão / edition em uso…
Abraços,
Chiappa
-
AutorPosts
- Você deve fazer login para responder a este tópico.