INSTR (Italiano)
Sintassi
Descrizione del illustrazione instr.gif
Scopo
Le funzioni INSTR cercano string per substring. La funzione restituisce un numero intero che indica la posizione del carattere in string che è il primo carattere di questa occorrenza. INSTR calcola le stringhe utilizzando i caratteri definiti dal set di caratteri di input. INSTRB utilizza byte anziché caratteri. INSTRC utilizza caratteri completi Unicode. INSTR2 utilizza i punti di codice UCS2. INSTR4 utilizza punti di codice UCS4.
-
positionè un numero intero diverso da zero che indica il carattere distringdove Oracle Database inizia la ricerca. Sepositionè negativo, Oracle conta all’indietro dalla fine distringe quindi cerca all’indietro dalla posizione risultante. -
occurrenceè un numero intero che indica quale occorrenza distringOracle dovrebbe cercare. Il valore dioccurrencedeve essere positivo.
Sia string e substring può essere uno qualsiasi dei tipi di dati CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB o NCLOB. Il valore restituito è del NUMBER tipo di dati.
Sia position che occurrence deve essere del tipo di dati NUMBER o qualsiasi tipo di dati che può essere convertito implicitamente in NUMBER e deve essere risolto in un numero intero. I valori predefiniti di position e occurrence sono 1, il che significa che Oracle inizia la ricerca dal primo carattere di string per la prima occorrenza di substring. Il valore restituito è relativo all’inizio di string, indipendentemente dal valore di position, ed è espresso in caratteri. Se la ricerca non riesce (se substring non viene visualizzato occurrence volte dopo il carattere position di string), il valore restituito è 0.
Vedi anche:
Tabella 2-10, “Matrice di conversione implicita del tipo” per ulteriori informazioni sulla conversione implicita
Esempi
Il seguente esempio cerca la stringa CORPORATE FLOOR, che inizia con il terzo carattere, per la stringa “OR“. Restituisce la posizione in CORPORATE FLOOR in cui inizia la seconda occorrenza di “OR” :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
Nell’esempio successivo, Oracle conta all’indietro dall’ultimo carattere al terzo carattere dalla fine, che è il primo O in FLOOR. Oracle quindi cerca all’indietro la seconda occorrenza di OR e trova che questa seconda occorrenza inizia con il secondo carattere nella stringa di ricerca:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
L’esempio successivo presuppone un set di caratteri del database a doppio byte.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27