Separar dados de uma coluna em linhas

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
thrrent
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 27
Registrado em: Dom, 29 Jan 2012 5:28 pm
Localização: Rio de Janeiro

Olá pessoal,

Tenho uma tabela X com uma coluna Y do tipo Clob.

Esta coluna armazena vários valores concatenados com quebra de linha, Ex:

Coluna Y:
Linha 1:
"Rio de Janeiro
São Paulo
Louro José
Etc..."

Preciso separar os dados contidos em um registro em linhas diferentes para cada quebra de linha.

Coluna Y:
Linha 1:
"Rio de Janeiro"
Linha 2:
"São Paulo"
Linha 3:
"Louro José"
Linha 4:
"Etc..."

Alguém já precisou fazer isso?

Agradeço a ajuda!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5023
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

Veja se esse link ajuda:
viewtopic.php?t=753
thrrent
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 27
Registrado em: Dom, 29 Jan 2012 5:28 pm
Localização: Rio de Janeiro

No meu caso específico preciso fazer via sql, to pensando em usar expressão regular para captar as quebras de linhas e usar para dividir os valores em linhas distintas.
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5023
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

Tente assim, usando apenas SQL: (O tópico sugerido acima tem várias formas de se fazer isso... No fim tem um exemplo apenas em SQL)

Selecionar tudo

select REGEXP_SUBSTR(str, exp, 1, level) lista
from (select 'paulo@email.com;thomas@email.com' str, '[^;]+' exp 
      from dual) 
connect by REGEXP_SUBSTR(str, exp, 1, level) is not null  
Saída:

Selecionar tudo

LISTA
--------------------------------
paulo@email.com
thomas@email.com
Responder
  • Informação
  • Quem está online

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