Qlik Community

Qlik Brasil

Group community for Brazil users. discussion only in Portuguese.

Highlighted
savio_bueno
New Contributor III

Extração XML de base Oracle

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.

7 Replies
aderlanrm
Valued Contributor

Re: Extração XML de base Oracle

Ola,

Primeiro faz a extração do campo, normal, sem o extract, depois use o comando from_field.

https://help.qlik.com/en-US/qlikview/November2017/Subsystems/Client/Content/Scripting/ScriptRegularS...

Na tela de script tem um assistente, bem útil para ajudar no entendimento, e a opção de carregamento do campo.

Abraço!

pablolabbe
Valued Contributor II

Re: Extração XML de base Oracle

Talvez isto aqui te ajude.

Extraindo campos de tags XML

thiago_justen
Valued Contributor III

Re: Extração XML de base Oracle

Pelo menos a mim ajudou e muito hehe!!

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
pablolabbe
Valued Contributor II

Re: Extração XML de base Oracle

Sávio,


Conseguiu resolver seu problema com as dicas ?

savio_bueno
New Contributor III

Re: Extração XML de base Oracle

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.

thiago_justen
Valued Contributor III

Re: Extração XML de base Oracle

Sávio,

Disponibilize um xml de exemplo.

Thiago Justen Teixeira Gonçalves
WhatsApp: 24 98152-1675
Skype: justen.thiago
savio_bueno
New Contributor III

Re: Extração XML de base Oracle

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).