Чтение онлайн

ЖАНРЫ

Firebird РУКОВОДСТВО РАЗРАБОТЧИКА БАЗ ДАННЫХ

Борри Хелен

Шрифт:

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

159

Самый последний вариант библиотеки FreeUDFLib с исправленными функциями BLOB находится на www.ibase.ru.
– Прим. науч. ред.

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 = ;

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

См. также F_BLOBMID, F_BLOBRIGHT

Поделиться с друзьями: