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.
-
positionto niezerowa liczba całkowita wskazująca znakstring, gdzie Oracle Database rozpoczyna wyszukiwanie. Jeślipositionjest ujemne, Oracle odlicza wstecz od końcastring, a następnie wyszukuje wstecz od pozycji wynikowej. -
occurrenceto liczba całkowita wskazująca, które wystąpieniestringpowinno wyszukać Oracle. Wartośćoccurrencemusi 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