EXTRACTVALUE function oracle

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
  

Mensagemem Qua, 07 Ago 2019 10:06 pm

Prezados boa noite!

Por gentileza alguém pode me ajudar? Estou utilizando a função EXTRACTVALUE function para extrair informações de um XML.

Dúvida.
Como faço para tratar uma consulta quando o arquivo pode não vir informações do " cliente contato" , pois a mesma se não existir não retorna dados?:

Exemplo:

 
Código: Selecionar todos
  ,TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE(teste), '/cliente'))) cliente
    ,TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE(teste),'/cliente/contato'))) Contato


Se a table Contato não existir, impacta a cliente vir dados.
Primeira consulta:

Código: Selecionar todos
    <cliente>
        <NOME>JOSE CARLOS SANTOS</NOMEi>
        <BAIRRO>CAMPOS SALES</BAIRROi>
                  <CIDADE>SANTOS</CIDADE>
        <ClienteContato>
        <CONTATO>MARCELO GABRIEL</cCONTATO>
      </cliente>


SEGUNDA CONSULTA:

Código: Selecionar todos
    <cliente>
        <NOME>JOSE CARLOS SANTOS</NOMEi>
        <BAIRRO>CAMPOS SALES</BAIRROi>
                  <CIDADE>SANTOS</CIDADE>
        </cliente>


Como posso resolver isso?

obrigada
Cristine
KATIA DIAS
Localização: SAO PAULO

Mensagemem Qui, 08 Ago 2019 6:22 am

Bom dia Katia

Segue um exemplo:


Código: Selecionar todos
select extractvalue(column_value,'/cliente/NOME') Cliente_Nome
      ,extractvalue(column_value,'/cliente/ClienteContato/CONTATO') Cliente_Contato_Nome
from
TABLE(XMLSEQUENCE(XMLTYPE('<cliente>
        <NOME>JOSE CARLOS SANTOS</NOME>
        <BAIRRO>CAMPOS SALES</BAIRRO>
                  <CIDADE>SANTOS</CIDADE>
        <ClienteContato>
        <CONTATO>MARCELO GABRIEL</CONTATO></ClienteContato>
      </cliente>'))) cliente;
     
select extractvalue(column_value,'/cliente/NOME') Cliente_Nome
      ,extractvalue(column_value,'/cliente/ClienteContato/CONTATO') Cliente_Contato_Nome
from
TABLE(XMLSEQUENCE(XMLTYPE('<cliente>
        <NOME>JOSE CARLOS SANTOS</NOME>
        <BAIRRO>CAMPOS SALES</BAIRRO>
                  <CIDADE>SANTOS</CIDADE>
        </cliente>'))) cliente;
paulochagas
Localização: São Paulo - SP

Paulo Chagas Filho
__________________

Analista Funcional / Desenvolvedor Oracle EBS
MSN - paulochagas@hotmail.com
Gtalk - pachafi@gmail.com
Skype - paulochagas

Mensagemem Qui, 08 Ago 2019 9:24 am

Bom dia Paulo!

Muito obrigada. Vou testar e publico aqui.
KATIA DIAS
Localização: SAO PAULO



Voltar para PL/SQL

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 7 visitantes