Udostępnij za pośrednictwem


Funkcje ciągów

W poniższej tabeli wymieniono funkcje manipulowania ciągami. Aplikacja może określić, które funkcje ciągów są obsługiwane przez sterownik, wywołując SQLGetInfo z typem informacji SQL_STRING_FUNCTIONS.

Uwagi

Argumenty oznaczone jako string_exp mogą być nazwą kolumny, literał-ciągu znakówlub wynikiem innej funkcji skalarnej, gdzie podstawowy typ danych może być reprezentowany jako SQL_CHAR, SQL_VARCHAR lub SQL_LONGVARCHAR.

Argumenty oznaczone jako character_exp to ciąg znaków o zmiennej długości.

Argumenty oznaczone jako start, długościlub liczby mogą być literał-liczbowy lub wynik innej funkcji skalarnej, gdzie podstawowy typ danych może być reprezentowany jako SQL_TINYINT, SQL_SMALLINT lub SQL_INTEGER.

Funkcje ciągów wymienione tutaj są oparte na 1; oznacza to, że pierwszy znak w ciągu to znak 1.

Funkcje skalarne ciągów BIT_LENGTH, CHAR_LENGTH, CHARACTER_LENGTH, OCTET_LENGTH i POSITION zostały dodane w formacie ODBC 3.0 w celu dopasowania do języka SQL-92.

Funkcja Opis
ASCII(string_exp) (ODBC 1.0) Zwraca wartość kodu ASCII z lewego znaku string_exp jako liczba całkowita.
BIT_LENGTH(string_exp) (ODBC 3.0) Zwraca długość w bitach wyrażenia ciągu.

Nie działa tylko dla typów danych ciągów, dlatego nie będzie niejawnie konwertować string_exp na ciąg, ale zamiast tego zwróci (wewnętrzny) rozmiar dowolnego typu danych.
CHAR( kod) (ODBC 1.0) Zwraca znak, który ma wartość kodu ASCII określoną przez kod . Wartość kodu powinna należeć do zakresu od 0 do 255; w przeciwnym razie wartość zwracana jest zależna od źródła danych.
CHAR_LENGTH(string_exp) (ODBC 3.0) Zwraca długość znaków wyrażenia ciągu, jeśli wyrażenie ciągu jest typem danych znaków; W przeciwnym razie zwraca długość w bajtach wyrażenia ciągu (najmniejsza liczba całkowita nie mniejsza niż liczba bitów podzielona przez 8). (Ta funkcja jest taka sama jak funkcja CHARACTER_LENGTH).
CHARACTER_LENGTH(string_exp) (ODBC 3.0) Zwraca długość znaków wyrażenia ciągu, jeśli wyrażenie ciągu jest typem danych znaków; W przeciwnym razie zwraca długość w bajtach wyrażenia ciągu (najmniejsza liczba całkowita nie mniejsza niż liczba bitów podzielona przez 8). (Ta funkcja jest taka sama jak funkcja CHAR_LENGTH).
CONCAT(string_exp1,string_exp2) (ODBC 1.0) Zwraca ciąg znaków, który jest wynikiem łączenia string_exp2 w celu string_exp1. Wynikowy ciąg jest zależny od zestawu DBMS. Jeśli na przykład kolumna reprezentowana przez string_exp1 zawierała wartość NULL, funkcja DB2 zwróci wartość NULL, ale program SQL Server zwróci ciąg inny niż NULL.
DIFFERENCE(string_exp1,string_exp2) (ODBC 2.0) Zwraca wartość całkowitą, która wskazuje różnicę między wartościami zwracanymi przez funkcję SOUNDEX dla string_exp1 i string_exp2.
INSERT(string_exp1, rozpoczęcie, długości, string_exp2) (ODBC 1.0) Zwraca ciąg znaków, w którym długość znaków została usunięta z string_exp1, począwszy od rozpoczynaniai gdzie string_exp2 została wstawiona do string_exp, rozpoczynając od rozpoczynać.
LCASE(string_exp) (ODBC 1.0) Zwraca ciąg równy tej wartości w string_exp, ze wszystkimi wielkimi znakami przekonwertowanymi na małe litery.
LEFT(string_exp, liczba ) (ODBC 1.0) Zwraca liczbę z lewej znaków string_exp.
LENGTH(string_exp) (ODBC 1.0) Zwraca liczbę znaków w string_exp, z wyłączeniem końcowych wartości pustych.

długość akceptuje tylko ciągi. W związku z tym niejawnie przekonwertuje string_exp na ciąg i zwróci długość tego ciągu (a nie wewnętrzny rozmiar typu danych).
LOCATE(string_exp1, string_exp2[, ]) (ODBC 1.0) Zwraca pozycję początkową pierwszego wystąpienia string_exp1 w string_exp2. Wyszukiwanie pierwszego wystąpienia string_exp1 rozpoczyna się od pierwszego położenia znaku w string_exp2, chyba że opcjonalny argument jest określony. Jeśli określono rozpoczęcia, wyszukiwanie rozpoczyna się od pozycji znaku wskazanej przez wartość rozpoczęcia. Pierwsza pozycja znaku w string_exp2 jest wskazywana przez wartość 1. Jeśli string_exp1 nie zostanie znaleziona w string_exp2, zwracana jest wartość 0.

Jeśli aplikacja może wywołać funkcję skalarną LOCATE z string_exp1, string_exp2i uruchomić argumenty, sterownik zwraca SQL_FN_STR_LOCATE, gdy SQLGetInfo jest wywoływana przy użyciu opcji SQL_STRING_FUNCTIONS. Jeśli aplikacja może wywołać funkcję skalarną LOCATE tylko z argumentami string_exp1 i string_exp2, sterownik zwraca SQL_FN_STR_LOCATE_2, gdy SQLGetInfo jest wywoływana z opcją SQL_STRING_FUNCTIONS. Sterowniki obsługujące wywoływanie funkcji LOCATE z dwoma lub trzema argumentami zwracają zarówno SQL_FN_STR_LOCATE, jak i SQL_FN_STR_LOCATE_2.
LTRIM(string_exp) (ODBC 1.0) Zwraca znaki string_expz usuniętymi spacjami wiodącymi.
OCTET_LENGTH(string_exp) (ODBC 3.0) Zwraca długość w bajtach wyrażenia ciągu. Wynik jest najmniejszą liczbą całkowitą nie mniejszą niż liczba bitów podzielona przez 8.

Nie działa tylko dla typów danych ciągów, dlatego nie będzie niejawnie konwertować string_exp na ciąg, ale zamiast tego zwróci (wewnętrzny) rozmiar dowolnego typu danych.
POSITION(character_expINcharacter_exp) (ODBC 3.0) Zwraca pozycję pierwszego wyrażenia znaku w drugim wyrażeniu znaku. Wynikiem jest dokładna liczba z dokładnością zdefiniowaną przez implementację i skalą 0.
REPEAT(string_exp, liczba) (ODBC 1.0) Zwraca ciąg znaków składający się z string_exp wielokrotnych liczby razy.
REPLACE(string_exp1, string_exp2, string_exp3) (ODBC 1.0) Wyszukaj string_exp1 wystąpienia string_exp2i zastąp ciąg string_exp3.
RIGHT(string_exp, liczba ) (ODBC 1.0) Zwraca najbardziej prawą liczbę znaków string_exp.
RTRIM(string_exp) (ODBC 1.0) Zwraca znaki string_exp z usuniętymi spacjami końcowymi.
SOUNDEX(string_exp) (ODBC 2.0) Zwraca ciąg znaków zależny od źródła danych reprezentujący dźwięk wyrazów w string_exp. Na przykład program SQL Server zwraca 4-cyfrowy kod SOUNDEX; Oracle zwraca fonetyczną reprezentację każdego słowa.
SPACE( liczba) (ODBC 2.0) Zwraca ciąg znaków składający się z liczby spacji.
SUBSTRING(string_exp, rozpoczęcie, długość**)** (ODBC 1.0) Zwraca ciąg znaków pochodzący z string_exp, rozpoczynający się od pozycji znaku określonej przez dla znaków o długości .
UCASE(string_exp) (ODBC 1.0) Zwraca ciąg równy tej wartości w string_exp, ze wszystkimi małymi literami przekonwertowanymi na wielkie litery.