Базы данных

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

В этой части речь пойдет о функциях работы с текстовой информацией, которые могут применяться в запросах и программном коде на языке PL/SQL.

Функция CONCAT(strl, str2)

Данная функция выполняет конкатенацию строк strl и str2. Если один из аргументов равен NULL, то он воспринимается как пустая строка. Если оба аргумента равны NULL, то функция возвращает NULL.

Пример:

SELECT  CONCATC'y попа  ', 'была собака')  xl, CONCATCTest', NULL)  х2, CONCAT(NULL, 'Test') хЗ, CONCAT(NULL, NULL)   x4 FROM  dual

XI

Х2

ХЗ

Х4

У попа была собака

Test

Test

NULL

Для конкатенации строк Oracleподдерживает специальный оператор конкатенации «||», который работает аналогично функции CONCAT, например:

SELECT  CONCATCY попа  ', 'была собака')  xl, 'У попа  ' II   'была собака'  х2 FROM dual

XI                                     Х2

У попа была собака       У попа была собака

Не следует путать оператор конкатенации «||», эквивалентный вызову функции CONCAT, и оператор «+», применяемый в арифметических операциях. В Oracle это разные операторы, но за счет автоматического приведения типов возможны трудноуловимые ошибки, например:

SELECT '5' + '3' xl FROM dual

В данном случае возвращается числовое значение 8, а не текстовая строка «53». Это связано с тем, что, обнаружив арифметическую операцию «+», Oracle автоматически пытается привести аргументы к типу NUMBER.

Функция LOWER(str)

Функция LOWERпреобразует все символы строки str в строчные. Пример:

SELECT LOWER('TeXt DATA') X FROM dual

X______

text data

Функция UPPER(str)

Функция UPPER преобразует все символы строки str в прописные. Пример:

SELECT UPPER('TeXt DATA') X FROM dual

X

TEXT DATA

Функция INITCAP(str)

Возвращает строку str, в которой первые буквы всех слов преобразованы в прописные. Функция удобна для форматирования полного имени при построении отчетов.

Пример:

SELECT INITCAP('ИваноВ петр сиДорович') X FROM dual

X

Иванов Петр Сидорович

Функции LTRIM(str [,set]) и RTRIM(str [,set])

Функция LTRIM удаляет все символы с начала строки до первого символа, которого нет в наборе символов set. По умолчанию set состоит из одного пробела и может не указываться. Функция RTRIM аналогична LTRIM, но удаляет символы, начиная от конца строки. Рассмотрим несколько примеров:

предыдущаяследующая