Boa Tarde Diego, Tenho uma função que faz a busca de parte de uma string que pode te ajudar.
segue abaixo, o link: http://blog.gaudencio.net.br/2015/11/oracle-funcao-para-retornar-partes-de.html Em 7 de abril de 2016 14:57, Diego Melo [email protected] [oracle_br] < [email protected]> escreveu: > > > Olá galera, tudo bem ? > > Por gentileza, poderiam me ajudar em um SQL. > > Minha versão do Oracle é: > > Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bi > PL/SQL Release 10.2.0.5.0 - Production > "CORE 10.2.0.5.0 Production" > TNS for Linux: Version 10.2.0.5.0 - Production > > Tenho uma tabela com uma string e diversos campos separados por | (pipe) > > Preciso trazer cada campo em uma coluna. Eu até consegui uma maneira, o > problema é que quando um registro não tem o campo preenchido e a string > traz ||, ai da ruim na minha solução. Detalhe, eu não posso atlerar a > string original > > Alguém teria uma solução em Oracle SQL ?? > > Fiz do seguinte modo: > > > CREATE TABLE t_1 ( strings varchar2(4000)); > /INSERT INTO t_1VALUES ('99|1500001|JOANA PRADO |08227525490|BRA|0||'); > INSERT INTO t_1VALUES ('99|1500002|LUCIANA XIMENES SILVA||BRA|0||'); > INSERT INTO t_1VALUES ('99|1500003|JULIA ROBERTS|44303539805|USA|0||'); > COMMIT; > SELECT regexp_substr(strings,'[^|]+',1,1) identificador, > regexp_substr(strings,'[^|]+',1,2) id, > regexp_substr(strings,'[^|]+',1,3) nome, > regexp_substr(strings,'[^|]+',1,4) cpf, > regexp_substr(strings,'[^|]+',1,5) pais, > regexp_substr(strings,'[^|]+',1,6) tipoFROM t_1 > > > > Reparem que o registro id 1500002 não tem cpf e ai o campo de pais acaba > ocupando o espaço do CPF. > > Grato. > > Diego > > > > >
