Шрифт:
Интервал:
Закладка:
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()
Функции BLOB[159]
FBUDF
STRING2BLOB(VALUE)
Linux, Win32
Принимает поле строки (столбец, переменную, выражение) и возвращает текст BLOB
Аргументы
VALUE: столбец или выражение, результатом вычисления которого является значение типа VARCHAR 300 символов или меньше
Возвращаемое значение
Текст BLOB
Замечания
В большинстве случаев нет необходимости вызывать эту функцию. Firebird напрямую принимает строки в качестве входных данных для BLOB
Пример
Следующий фрагмент модуля PSQL выполняет конкатенацию двух строк и конвертирует результат в текст BLOB:
. . .
DECLARE VARIABLE V_COMMENTl VARCHAR(250);
DECLARE VARIABLE V_COMMENT2 VARCHAR(45);
DECLARE VARIABLE V_MEMO VARCHAR(296) = ' ';
. . .
SELECT<. . .другие поля. . .>, COMMENT1, COMMENT2
FROM APPLICATION
WHERE APPLICATION_ID = :APP_ID
INTO <...другие переменные...>, :V_COMMENTl, V_COMMENT2;
IF (V_COMMENT1 IS NOT NULL) THEN
V_MEMO = V_COMMENT1;
IF (V_COMMENT2 IS NOT NULL) THEN
BEGIN
IF (V_MEMO = '') THEN
V_MEMO = V_C0MMENT2;
ELSE
V_MEM0 = V_MEMO ||' ' || V_COMMENT2;
END
IF (V_MEMO <> ' ') THEN
INSERT INTO MEMBERSHIP(
FIRST_NAME, LAST_NAME, APP_ID, BLOB_MEMO)
VALUES (
:FIRST_NAME, :LAST_NAME, :APP_ID,
STRING2BLOB (:V_MEMO) ) ;
. . .
Связанные или похожие функции
См. также F_BLOBASPCHAR()
FREEUDFLIB
F_BLQBMAXSEGENTLENGTH(VALUE)
Win32
Принимаемая ссылка на BLOB В памяти возвращает количество сегментов для его хранения
Аргументы
VALUE является идентификатором столбца BLOB В таблице
Возвращаемое значение
Целое число, являющееся количеством сегментов
Пример
SELECT F_BLOBSEGMENTCOUNT(BLOB_MEMO) AS SEGMENT_COUNT FROM MEMBERSHIP WHERE MEMBER_ID = ....;
Связанные или похожие функции
См. также F_MAXBLOBSEGMENTSIZE(), F_BLOBSIZE()
FREEUDFLIB
F_BLOBSIZE(VALUE)
Win32
Принимаемая ссылка на BLOB в памяти возвращает размер в байтах
Аргументы
VALUE является идентификатором столбца BLOB в таблице
Возвращаемое значение
Целое число, являющееся размером BLOB в байтах
Пример
SELECT F_BLOBSIZE(BLOB_MEMO) AS SIZE_OF_MEMO FROM MEMBERSHIP WHERE MEMBER_ID = ;
Связанные или похожие функции
См. также F_BLOBSEGMENTCOUNT(), F_BLOBMAXSEGMENTSIZE()
FREEUDFLIB
F_BLOBASPCHAR(VALUE)
Win32
Принимает ссылку на поле BLOB (столбец или переменная) и возвращает [ его содержимое в виде строки, завершаемой нулем
Аргументы
VALUE является ссылкой на столбец или переменную BLOB
Возвращаемое значение
Строка, завершаемая нулем
Замечания
Используйте эту функцию только для тех BLOB, о которых вы точно знаете, ; что их размер не превышает максимальную длину типа VARCHAR (32 765 байт). Учитывайте увеличенный размер в байтах в BLOB, хранящих многобайтовые символы
Пример
SELECT F_BLOBASPCHAR(BLOB_MEMO) AS MEMO_STRING FROM MEMBERSHIP WHERE MEMBER_ID = ;
Связанные или похожие функции
См. также STRING2BLOB()
FREEUDFLIB
F_BLQBLEFT(VALUE, N)
Win32
Получает ссылку на поле BLOB (столбец или переменная) и возвращает первые n символов
Аргументы
VALUE: идентификатор столбца или переменной BLOB.
N: максимальное количество возвращаемых символов. Не должно превышать максимальной длины для VARCHAR (32 765 байт)
Возвращаемое значение
Завершаемая нулем строка длиной N или менее символов
Замечания
Учитывайте увеличенный размер в байтах в BLOB, хранящих многобайтовые символы
Пример
SELECT F_BLOBLEFT(BLOB_MEMO, 20) AS MEMO_START
FROM MEMBERSHIP WHERE MEMBER_ID = ;
- Delphi. Учимся на примерах - Сергей Парижский - Программирование
- Сделай видеоигру один и не свихнись - Слава Грис - Программирование / Руководства
- Психбольница в руках пациентов - Алан Купер - Программирование