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
>
>
>
> 
>

Responder a