Ler array JSON via quey

Dúvidas, dicas e truques de PL/SQL. Aqui também vão assuntos relacionados a pacotes, triggers, funções, Java-Stored Procedures, etc
Responder
KATIA DIAS
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 16 Mar 2006 8:48 pm
Localização: são PAULO

Pessoal, boa tarde! Tudo bem com vocês?

Pode me ajudar nesta solução? Seguinte: Tenho uma estrutura JSON, que já funciona através deste simples select abaixo:
A questão é o seguinte, agora preciso tratar como ler este arrays, já que estava lendo apenas 1 endereço, mas agora vou ter mais de 2 para ler e
inserir na tabela. Como posso fazer para ler vários endereços aproveitando minha query.... Ou é melhor uma type?

--Query que faz leitura do JSON---

Selecionar tudo

SELECT 
        a.dsc_json.End.dsc_endereco,
        a.dsc_json.End.dsc_tipo_endereco,
   
        a.dsc_json.End.dsc_endereco,
        a.dsc_json.End.dsc_tipo_endereco

 FROM teste a  
 WHERE a.dsc_json.num_cpf ='0000';

----Exemplo Estrutura JSON ---

Selecionar tudo

 "End": [{  "dsc_tipo_endereco": "Comercial",
			"dsc_endereco": "Rua Pamplona, 10"
			
 }, {
         "dsc_tipo_endereco": "Inexistente",
		 "dsc_endereco": "Rua da Gloria, 100"
         }],
muito obigada!

Kátia
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

No Oracle 18c eu consegui dessa forma:

Selecionar tudo

with jso as
(select
'{"End": [{  "dsc_tipo_endereco": "Comercial",
             "dsc_endereco": "Rua Pamplona, 10"
          }
         ,{
            "dsc_tipo_endereco": "Inexistente",
           "dsc_endereco": "Rua da Gloria, 100"
         }]}'
js
from dual)

select x.*
from jso
, json_table ( jso.js, '$.End[*]'
              COLUMNS A varchar2(200) path '$.dsc_tipo_endereco',
                      B varchar2(200) path '$.dsc_endereco') x
Veja a saída:
json_oracle.png
KATIA DIAS
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 25
Registrado em: Qui, 16 Mar 2006 8:48 pm
Localização: são PAULO

dr_gori, boa tarde!

Fiz exatamente desta forma e funcionou perfeitamente!

Muito obrigada!
Responder
  • Informação
  • Quem está online

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