Книга: Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Строковые и символьные функции

Строковые и символьные функции

IB_UDF

ASCII_CHAR(VALUE)

Linux, Win32

Возвращает символ ASCII, соответствующий переданному ей десятичному значению

Аргументы

VALUE является столбцом, константой или выражением типа SMALLINT или INTEGER

Возвращаемое значение

Однобайтовый печатный или непечатный символ

Пример

Следующий оператор добавит в столбец символ перевода строки и возврата каретки для каждой строки внешней таблицы:

UPDATE EXT_FILE

SET EOL = ASCII_CHAR(13) || ASCII_CHAR(10);

IB_UDF

ASCII_VAL(VALUE)

Linux, Win32

Возвращает значение ASCII, соответствующее переданному ей десятичному значению

Аргументы

VALUE является столбцом, константой или выражением типа CHAR

Возвращаемое значение

Целое десятичное значение ASCII

Пример

SELECT ASCII_VAL('&') AS ASC_NUM FROM RDB$DATABASE;

IB_UDF

LOWER(VALUE)

Linux, Win32

Возвращает входную строку в виде символов в нижнем регистре. Работает только с символами ASCII

Аргументы

VALUE является столбцом или выражением, результатом вычисления которого является значение типа строки ASCII длиной 32 765 байт или меньше

Возвращаемое значение

CHAR(n) или VARCHAR(n) того же размера, что и входная строка

Замечания

Эта функция может получать и возвращать до 32 767 символов, ограничение на символьные строки Firebird

Пример

Следующий оператор вернет строку 'come and sit at my table':

SELECT LOWER('Come and sit at MY TABLE') AS L_STRING FROM RDB$DATABASE;

IB_UDF

LPAD(VALUE, LENGTH, IN_CHAR)

Linux, Win32

Присоединяет указанный символ IN CHAR к началу входной строки VALUE до тех пор, пока длина результирующей строки не станет равной заданному числу LENGTH

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки не длиннее, чем (32767 - LENGTH) байт.

LENGTH: константа или выражение типа целого.

IN CHAR: один символ, который используется в качестве символа заполнителя

Возвращаемое значение

CHAR(n) или VARCHAR(n), где n имеет значение входного аргумента LENGTH

Замечания

Эта функция может получать и возвращать до 32 767 символов, ограничение на символьные строки Firebird

Пример

Следующий оператор вернет строку ' ##########RHUBARB ':

SELECT LPAD('RHUBARB', 17, '#') AS LPADDED_STRING FROM RDB$DATABASE;

Связанные или похожие функции

См. также RPAD()

IB_UDF

LTRIM(VALUE)

Linux, Win32

Удаляет начальные пробелы из входной строки

Аргументы

VALUE - столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 767 байт

Возвращаемое значение

CHAR(N) или VARCHAR(n) без начальных пробельных символов

Замечания

Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird

Пример

Следующий фрагмент триггера BEFORE INSERT будет удалять начальные пробелы из входной строки:

NEW.CHARACTER_COLUMN =

LTRIM(NEW.CHARACTER_COLUMN) ;

Связанные или похожие функции

См. также RTRIM(), F_RTRIM(), F_LRTRIM()

FBUDF

SRIGHT(VALUE, LENGTH)

Linux, Win32

Возвращает подстроку для VALUE, являющуюся правой частью строки VALUE длиной LENGTH символов

Аргументы

Нет

Возвращаемое значение

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 767 байт.

LENGTH: константа или выражение типа целого

Замечания

Эта функция может принимать 32 765 байт, ограничение для символьных строк Firebird

Пример

Следующий оператор вернет строку 'fox jumps over the lazy dog': SELECT SRIGHT('The quick brown fox jumps over the lazy dog.', 28)

AS R_STRING FROM RDB$DATABASE;

Связанные или похожие функции

См. также SUBSTRO , SUBSTRLEN(), внутреннюю функцию SUBSTRING()

IB_UDF

RPAD(VALUE, LENGTH, IN_CHAR)

Linux, Win32

Присоединяет указанный символ IN_CHAR К концу входной строки VALUE до тех пор, пока длина результирующей строки не станет равной заданному числу LENGTH

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки не длиннее, чем (32765 - LENGTH) байт.

LENGTH: константа или выражение типа целого.

IN CHAR один символ, который используется в качестве символа заполнителя

Возвращаемое значение

CHAR(n) или VARCHAR(n), где n имеет значение входного аргумента LENGTH

Замечания

Эта функция может получать и возвращать до 32 765 символов, ограничение на символьные строки Firebird

Пример

Следующий оператор вернет строку ' Framboise***********':

SELECT RPAD ('Framboise', 20, ' * ' ) AS RPADDED_STRING

FROM RDB$DATABASE;

Связанные или похожие функции

См. также LPADO

IB_UDF

RTRIM(VALUE)

Linux, Win32

Удаляет конечные пробелы из входной строки

Аргументы

VALUE- столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 765 байт

Возвращаемое значение

CHAR(n) или VARCHAR(n) без конечных пробельных символов

Замечания

Эта функция может принимать 32 765 байт, включая пробельные символы, значение для символьных строк Firebird

Пример

Следующий фрагмент триггера BEFORE INSERT будет удалять конечные пробелы из входной строки:

. . .

NEW.CHARACTER_COLUMN = RTRIM (NEW.CHARACTER_COLUMN);

Связанные или похожие функции

см. также LTRIM(), F_LRTRIM()

IB_UDF

STRLEN(VALUE)

Linux, Win32

Возвращает длину строки

Аргументы

VALUE - столбец или выражение, результатом вычисления которого является значение типа строки длиной не более 32 765 байт

Возвращаемое значение

Целое число, длина (счетчик) символов в строке

Замечания

Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird

Пример

Следующий фрагмент модуля PSQL присваивает длину столбца локальной переменной:

. . .

DECLARE VARIABLE LEN INTEGER;

. . .

SELECT COL1, COL2, COL3 FROM ATABLE

INTO :VI, :V2, :V3;

LEN = STRLEN(V3);

Связанные или похожие функции

См. также SUBSTRLEN()

IB_UDF

SUBSTR(VALUE, P0S1, P0S2)

Linux, Win32

Возвращает строку, состоящую из позиций с POSI по POS2 включительно. Если POS2 превышает длину строки, то функция вернет все символы с позиции POSI до конца строки

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки.

POSI, POS2: столбец или выражение, результатом вычисления которого является целый тип

Возвращаемое значение

Строка

Замечания

Если вы переносите приложение, написанное для InterBase, имейте в виду, что эта версия SUBSTRO отличается от реализованной в поставляемой Borland библиотеке ib_udf функции SUBSTRO, которая возвращает NULL, если POS2 выходит за пределы входной строки.

Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird

Пример

Следующий оператор убирает первые три символа у строки COLUMNB и устанавливает ее значение в строку, начинающуюся с позиции 4 и заканчивающуюся позицией 100. Если строка заканчивается до позиции 100, результатом будут все символы от позиции 4 до конца строки:

UPDATE ATABLE

SET COLUMNB = SUBSTR(COLUMNB, 4, 100) WHERE...

Связанные или похожие функции

См. также SUBSTRLEN(), RTRIM(), внутреннюю функцию SUBSTRING()

IB_UDF

SUBSTRLEN(VALUE, STARTPOS, LENGTH)

Linux, Win32

Возвращает строку длиной LENGTH, начинающуюся с позиции STARTPOS. Длина этой строки будет меньше, чем LENGTH, если начальная позиция плюс длина превышают длину исходной строки

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки не длиннее 32 765 байт.

STARTPOS: столбец или выражение, результатом вычисления которого является целый тип.

LENGTH: столбец или выражение, результатом вычисления которого является целый тип

Возвращаемое значение

Строка

Замечания

Эта функция может принимать 32 765 байт, включая пробельные символы, ограничение для символьных строк Firebird

Пример

Следующий оператор берет значение столбца и изменяет его, удаляя первые три символа и удаляя после этого все конечные символы, если оставшаяся часть строки длиннее 20 символов:

UPDATE ATABLE

SET COLUMNB = SUBSTRLEN(COLUMNB, 4, 20)

WHERE...

Связанные или похожие функции

См. также SUBSTRO, RTRIMO, внутреннюю функцию SUBSTRING()

FREEUDFLIB

F_CRLF

Win32

Возвращает строку Windows возврат каретки/начало строки ASCII(13) || ASCII(10)

Аргументы

Нет

Возвращаемое значение

Строка в стиле языка С (завершается нулем)

Пример

Следующий оператор добавляет Windows-маркеры конца строки в столбец таблицы (например, во внешнюю таблицу для экспорта в другое приложение):

INSERT INTO EXTABLE(COLUMN1, COLUMN2, EOL)

VALUES (99, 'An item of data', CRLF());

FREEUDFLIB

F_FINDW0RD(VALUE, N)

Win32

Начиная с указанной позиции n, возвращает слово, содержащее символ этой позиции и следующие символы вплоть до следующего символа пробела

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки.

N: целый тип, указывающий на позицию (начинающуюся с нуля) в строке, где находится требуемое слово

Возвращаемое значение

Строка

Замечания

Рассматривайте строки, передаваемые в F_FINDWORD(), как массивы символов, начинающиеся с индекса 0

Пример

Следующий оператор возвращает слово 'pie':

SELECT F_FINDWORD('I never tasted pie like Mom used to make', 15) FROM RDB5DATABASE;

FREEUDFLIB

F_LEFT(VALUE, N)

Win32

Возвращает первые N символов из входной строки VALUE

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки.

N: целый тип, указывающий количество возвращаемых символов из левой части VALUE

Возвращаемое значение

Строка из N символов

Пример

Следующий оператор возвращает строку 'I never tasted pie':

SELECT F_LEFT('I never tasted pie like Mom used to make', 18) FROM RDB$DATABASE;

Связанные или похожие функции

См. также SUBSTRLEN(), SUBSTRO , внутреннюю функцию SUBSTRING()

FREEUDFLIB

F_LINEWRAP(VALUE, STARTPOS, WIDTH)

Win32

Получая начальную позицию (STARTPOS) в строке(VALUE) и размер (WIDTH), возвращает часть строки VALUE, начиная с позиции STARTPOS, которая занимает пространство в WIDTH символов

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки.

STARTPOS: целый тип, указывающий на позицию (начинающуюся с нуля) в строке, где находится возвращаемая строка.

WIDTH: целый тип, задающий ширину столбца (печатаемого/отображаемого), которую должна занимать возвращаемая строка

Возвращаемое значение

Строка из WIDTH (или меньше) символов

Замечания

Рассматривайте строки, передаваемые в F_LINEWRAP(), как массивы символов, начинающиеся с индекса 0

Пример

Следующий оператор возвращает строку 'which, taken at the flood': SELECT F_WORDWRAP('There is a tide in the affairs of men which, taken at the flood, leads on to good fortune.', 38, 25) FROM RDB$DATABASE;

FREEUDFLIB

F_LRTRIM(VALUE)

Win32

Удаляет из строки все начальные и конечные пробелы

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки

Возвращаемое значение

Строка с отсутствующими начальными и конечными пробелами

Пример

Следующий оператор возвращает строку 'lean and mean':

SELECT F_LRTRIM(' lean and mean')

FROM RDB$DATABASE;

Связанные или похожие функции

См. также LTRIM(), RTRIM()

FREEUDFLIB

F_PROPERCASE(VALUE)

Win32

Преобразует строку в "правильный" вид, то есть берет каждое слово и заменяет первый символ на эквивалент в верхнем регистре, переводя каждый другой символ слова в нижний регистр

Аргументы

VALUE: столбец или выражение, результатом вычисления которого является значение типа строки

Возвращаемое значение

Строка, подобная следующей: 'Now Is The Time For All Good Men To Come To The Aid Of The Party'

Замечания

Хотя эта функция и удобна для некоторых задач, она имеет ряд ограничений. В частности, не может правильно трактовать такие имена, как dOliveira, OHalloran или MacDonald

Пример

Следующий оператор вернет строку 'Eric S. Raymond':

SELECT F_PROPERCASE('ERIC S. RAYMOND')

FROM RDB$DATABASE;

Связанные или похожие функции

.I См. также LOWER(), UPPER()

Оглавление книги


Генерация: 6.645. Запросов К БД/Cache: 3 / 0
поделиться
Вверх Вниз