segunda-feira, 28 de fevereiro de 2011

Usando SPLIT em PLSQL

Nesse artigo pretendo mostrar como contornei um grande problema em plsql, a ausência da função SPLIT. Muito comum em varias linguagens como java ou php, a função SPLIT consiste em quebrar a String alvo em substrings com um separador. Segue exemplo de como funciona a função em java.




Segue a função que resolve o problema. Nela passamos a String que queremos separar, o caractere separador e a posição que queremos retornar.
/*
Função para retornar o segmento.
*/
create or replace function splitstr( nome varchar2
                                                 , separador varchar2
                                                 , posicao number
                                                ) return varchar2 is
       begin
                if posicao<=1 then 

                      return substr(nome,0,instr(nome,separador)-1); 
                  else 
                      return splitstr(substr(nome,instr(nome,separador)+1),separador,posicao-1); 
                 end if; 
         end splitstr;



Abaixo exemplo de chamada:


No exemplo acima exibimos o campo e em seguinda os subcampos 1,2 e 4.

Nenhum comentário:

Postar um comentário