INSTR (Polski)
Składnia
Opis illustration instr.gif
Cel
INSTR
wyszukuje funkcje string
dla . Funkcja zwraca liczbę całkowitą wskazującą pozycję znaku w string
, która jest pierwszym znakiem tego wystąpienia. INSTR
oblicza ciągi przy użyciu znaków zdefiniowanych w zestawie znaków wejściowych. INSTRB
używa bajtów zamiast znaków. INSTRC
używa pełnych znaków Unicode. INSTR2
używa punktów kodowych UCS2. INSTR4
używa punktów kodowych UCS4.
-
position
to niezerowa liczba całkowita wskazująca znakstring
, gdzie Oracle Database rozpoczyna wyszukiwanie. Jeśliposition
jest ujemne, Oracle odlicza wstecz od końcastring
, a następnie wyszukuje wstecz od pozycji wynikowej. -
occurrence
to liczba całkowita wskazująca, które wystąpieniestring
powinno wyszukać Oracle. Wartośćoccurrence
musi być dodatnia.
Zarówno string
, jak i substring
może być dowolnym typem danych CHAR
, VARCHAR2
, NCHAR
, NVARCHAR2
, CLOB
lub NCLOB
. Zwracana wartość to NUMBER
typ danych.
Zarówno position
, jak i occurrence
musi mieć typ danych NUMBER
lub dowolny typ danych, który można niejawnie przekonwertować na NUMBER
, i musi być przekształcony na liczbę całkowitą. Domyślne wartości obu position
i occurrence
to 1, co oznacza, że Oracle rozpoczyna wyszukiwanie od pierwszego znaku string
za pierwsze wystąpienie substring
. Wartość zwracana jest określana względem początku string
, niezależnie od wartości position
, i jest wyrażona w znakach. Jeśli wyszukiwanie zakończy się niepowodzeniem (jeśli substring
nie pojawia się occurrence
razy po position
znaku of string
), to zwracana wartość to 0.
Zobacz też:
Tabela 2-10, „Macierz konwersji typów niejawnych” aby uzyskać więcej informacji na temat niejawnej konwersji
Przykłady
Poniższy przykład przeszukuje ciąg CORPORATE
FLOOR
, zaczynając od trzeciego znaku, dla ciągu „OR
”. Zwraca pozycję w CORPORATE
FLOOR
, w której zaczyna się drugie wystąpienie „OR
” :
SELECT INSTR("CORPORATE FLOOR","OR", 3, 2) "Instring" FROM DUAL; Instring---------- 14
W następnym przykładzie Oracle liczy wstecz od ostatniego znaku do trzeciego znaku od końca, czyli pierwszego O
w FLOOR
. Następnie Oracle przeszukuje wstecz w poszukiwaniu drugiego wystąpienia OR
i stwierdza, że to drugie wystąpienie zaczyna się od drugiego znaku w ciągu wyszukiwania:
SELECT INSTR("CORPORATE FLOOR","OR", -3, 2)"Reversed Instring" FROM DUAL; Reversed Instring----------------- 2
W następnym przykładzie przyjęto dwubajtowy zestaw znaków bazy danych.
SELECT INSTRB("CORPORATE FLOOR","OR",5,2) "Instring in bytes" FROM DUAL;Instring in bytes----------------- 27