INSTR (Português)
Sintaxe
Descrição do ilustração instr.gif
Objetivo
As INSTR funções de pesquisa string por substring. A função retorna um número inteiro indicando a posição do caractere em string que é o primeiro caractere desta ocorrência. INSTR calcula strings usando caracteres conforme definido pelo conjunto de caracteres de entrada. INSTRB usa bytes em vez de caracteres. INSTRC usa caracteres completos Unicode. INSTR2 usa pontos de código UCS2. INSTR4 usa pontos de código UCS4.
-
positioné um número inteiro diferente de zero indicando o caractere destringonde o banco de dados Oracle começa a pesquisa. Sepositionfor negativo, o Oracle conta para trás a partir do final destringe, em seguida, pesquisa para trás a partir da posição resultante. -
occurrenceé um número inteiro que indica qual ocorrência destringo Oracle deve pesquisar. O valor deoccurrencedeve ser positivo.
Ambos string e substring pode ser qualquer um dos tipos de dados CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB ou NCLOB. O valor retornado é do NUMBER tipo de dados.
Ambos position e occurrence deve ser do tipo de dados NUMBER ou qualquer tipo de dados que possa ser convertido implicitamente para NUMBER e deve ser resolvido para um inteiro. Os valores padrão de position e occurrence são 1, o que significa que o Oracle começa a pesquisar o primeiro caractere de string para a primeira ocorrência de substring. O valor de retorno é relativo ao início de string, independentemente do valor de position, e é expresso em caracteres. Se a pesquisa não for bem-sucedida (se substring não aparecer occurrence vezes após o position caractere de string), então o valor de retorno é 0.
Consulte também:
Tabela 2-10, “Matriz de conversão de tipo implícito” para obter mais informações sobre a conversão implícita
Exemplos
O exemplo a seguir pesquisa a string CORPORATE FLOOR, começando com o terceiro caractere, para a string “OR“. Ele retorna a posição em CORPORATE FLOOR na qual a segunda ocorrência de “OR” começa :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
No próximo exemplo, o Oracle conta regressivamente do último caractere até o terceiro caractere do final, que é o primeiro O em FLOOR. O Oracle então pesquisa para trás pela segunda ocorrência de OR e descobre que esta segunda ocorrência começa com o segundo caractere na string de pesquisa:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
O próximo exemplo assume um conjunto de caracteres de banco de dados de byte duplo.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27