@Emerson, a sua função deu certo. Muito obrigado.
@Angelo, quiando vem vazio, deve ficar null mesmo, o CPF foi só um exemplo que me veio na cabeça, mas são outros campos na verdade, que tem que vir vazio ou null mesmo. Valeu !!!! 2016-04-07 16:12 GMT-03:00 angelo angelolis...@gmail.com [oracle_br] < oracle_br@yahoogrupos.com.br>: > > > Boa tarde, Diego, > > Será que ao invés de dar ruim na parada, não deu bom não? > > Pois não ficou claro sobre o que deveria acontecer no caso em que não vier > o cpf na string. > > To entendendo que se nao veio nada, entraria vazio mesmo, melhor, os pipes. > Você está importando isso de algum arquivo edi ? Campo cpf veio vazio, o > que entraria no lugar ? ou tinha cpf e nao inseriu ? > > > 99|1500002|LUCIANA XIMENES SILVA|o que fazer quando aqui for vazio? |BRA|0|| > > > > > > 2016-04-07 15:57 GMT-03:00 Diego Melo diegopm...@gmail.com [oracle_br] < > oracle_br@yahoogrupos.com.br>: > >> >> >> 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 >> >> >> >> > >