Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Boa noite a todos.
A questão é a seguinte: Extração de XML dentro da base Oracle.
No caso, utilizo comendo SQL Extract para obter as informações do XML que estão na base Oracle. Extract campo a campo é muito lento.
Alguém já precisou fazer este tipo de extração via Oracle, utilizando outra forma?
O comando via extract (lento) é:
SQL SELECT
e.COD_XML_EVENTO,
(extract(xml_procEVT, '//retEvento//InfEvento//chNFE//text()','xmlns=http://www.portalfiscal.inf.br/nfe').getStringVal() ) AS ChaveNFE
From NFE_XML_EVENTO e;
P.S.: Não tenho o arquivo XML para extrair, o dado só se encontra na base Oracle 8i.
No aguardo e à disposição.
Ola,
Primeiro faz a extração do campo, normal, sem o extract, depois use o comando from_field.
Na tela de script tem um assistente, bem útil para ajudar no entendimento, e a opção de carregamento do campo.
Abraço!
Talvez isto aqui te ajude.
Pelo menos a mim ajudou e muito hehe!!
Sávio,
Conseguiu resolver seu problema com as dicas ?
Ainda não Pablo.
A questão é que uma base muito grande, NFEs de todo o estado que estão em XML dentro do Oracle.
Existe já uma estrutura de dados, que quem já trabalhou com NFE sabe como é. Devido a isso, o gestor pediu para seguir o mesmo padrão já que a rotina da fabrica de software não está mais conseguindo atualizar a base relacional.
A solução enviada pelo Aderlan, link do Thiago é bem bacana mas ainda não resolveu, pois preciso atrelar a cada extração de item da NFE (NFE_PROD, NFE_IMPOSTO, NFE_ICMS) o número do NSUAN (Código Brasil) e renomeá-lo para COD_INFNFE. Neste ponto que está dando trabalho.
Estou testando uma solução da comunidade internacional e conseguindo, posto aqui e fecho a discussão.
Sávio,
Disponibilize um xml de exemplo.
Segue anexo Thiago.
A questão agora está nos campos de nomes iguais, por exemplo, como extrair as informações de Emitente (tags <emit> e <enderemit>) e Destinatário (tags <dest> e <enderdest>) pois possuem os campos com o mesmo nome?
Agradeço antecipadamente a atenção dispensada.
Para esclarecer melhor, como não temos acesso ao arquivo XML, vou à base oracle e salvo um arquivo CSV. A partir deste arquivo, trabalho com extração dos dados da NFE.
Mando anexo um exemplo reduzido do arquivo CSV.
Cada arquivo QVD, tem que conter o campo COD_INFNFE, que nada mais é do que o campo NSUAN.
NFE_EMIT |
---|
COD_INFNFE |
CNPJ |
XNOME |
IE |
CRT |
XLGR |
NRO |
XBAIRRO |
XUF |
O mesmo para NFE_DEST e toda a estrutura da NFE, conforme o manual de orientação ao contribuinte (Portal da Nota Fiscal Eletrônica).