sexta-feira, 6 de dezembro de 2013

Segredos do INSTR no Oracle PL/SQL


O comando INSTR no Oracle PL/SQL retorna a posição da substring pesquisada dentro de uma string principal, veja um exemplo:
SELECT INSTR('asa da asa por asa', 'as') FROM dual
O resulta desta pesquisa deverá ser um, pois irá apresentar o ponto da primeira ocorrência da substring sempre com a busca partindo da esquerda para a direita, porém é possível indicar qual é ocorrência que será pesquisada, veja um exemplo:
SELECT INSTR('asa da asa por asa', 'as', 2) FROM dual
O resultado deverá ser 8, pois a instrução acima retornou a segunda ocorrência da substring pesquisada.
O que pouca gente sabe é que é possível alterar a ordem da busca do INSTR, podendo instrui-la para que comece da direita para a esquerda. Para isso basta adicionar -1 como constante da busca, veja um exemplo:
SELECT INSTR('asa da asa por asa', 'as', -1) FROM dual
O resultado deverá ser 16, pois neste caso a pesquisa se iniciou da direita para a esquerda.

Nenhum comentário:

Postar um comentário