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 destring
onde o banco de dados Oracle começa a pesquisa. Seposition
for negativo, o Oracle conta para trás a partir do final destring
e, em seguida, pesquisa para trás a partir da posição resultante. -
occurrence
é um número inteiro que indica qual ocorrência destring
o Oracle deve pesquisar. O valor deoccurrence
deve 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