Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Oracle Tutorial.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
401.64 Кб
Скачать

Функции по работе со строками.

Строки в Оracle нумеруются с 1, а не с 0, как в некоторых изысканных языках.

Нижеприведенный запрос демонстрирует работу с некоторыми строковыми функциями. Для запроса “из ниоткуда” используется таблица DUAL, которая всегда есть в Oracle и всегда имеет единственную запись:

select substr('wqeqwe', 2, 3), -- подстрока, начиная со 2ой позиции 3 символа

substr('wqeqwe21', 3), -- подстрока, начиная со 3ой позиции до конца

substr('wqeqwe11', -5, 3), -- подстрока, начиная с 5ой с конца позиции 3 символа

substr('wqeqwe11', -4), -- подстрока, начиная с 4ой с конца позиции до конца

instr('abcdefcdr', 'cd'), -- позиция первого вхождения подстроки 'cd' в строку 'abcdefcdr'

instr('abcdef', 'cdr'), -- позиция первого вхождения отсутствующей подстроки 'cdr' в строку 'abcdef' принимается за 0

instr('abcdefcdr', 'cd', 5), -- позиция первого вхождения подстроки 'cd' в строку 'abcdefcdr' (поиск начинается с 5ой позиции)

replace('QRWTERTYRTY', 'RT', '1'), -- замена подстрок 'RT' на подстроки '1'

replace('QRWTERTYRTY', 'RT'), -- исключение подстрок 'RT'

translate('decfbcdar', 'abcj', '1234'), -- замена символов согласно строкам, задающим посимвольное сопоставление

translate('abcdefcdr', 'abefr', ' '), -- замена ненужных символов на пробелы

replace(translate('abcdefcdr', 'abefr', ' '), ' '), -- заменили ненужные символы на пробелы, а потом убрали их совсем

ascii('A'), -- ascii-код символа 'A'

ascii(' '), -- ascii-код пробела

ascii('Ы'), -- ascii-код символа 'Ы'

ascii('ЫИ\атц325'), -- ascii-код последовательности принимается равным ascii-коду первого символа этой последовательности

chr('70'), -- символ с кодом 70

chr('134'), -- символ с кодом 134

'фыва' || ' ' || 'пролджэ', -- конкатенация 3 строк

upper('aAa'), -- приведение строки к верхнему регистру

lower('aAa'), -- приведение строки к нижнему регистру

ltrim('aaaaa32a34 324', 'a'), -- убрали символы 'a' слева

ltrim(' 3234a3 24'), -- убрали пробелы слева

rtrim('323a 4324aaa', 'a'), -- убрали символы 'a' справа

rtrim('32a34 324 '), -- убрали пробелы справа

trim(' 323aa43 24 '), -- убрали пробелы слева и справа

lpad('abcdef', 10, '0'), -- дополнили строку слева до длины 10 символов символами '0'

lpad('abcdef', 10), -- дополнили строку слева до длины 10 символов пробелами

rpad('abcdef', 10, '0'), -- дополнили строку справа до длины 10 символов символами '0'

rpad('abcdef', 10), -- дополнили строку справа до длины 10 символов пробелами

reverse('Он дивен, палиндром, и ни морд, ни лап не видно') -- прочтение строки в обратном порядке

from dual;

Функции по работе с числами.

Данный запрос демонстрирует функции по работе с числами.

select round(4.13624, 2), -- округление до двух знаков после запятой

round(4.13324), -- округление до целого числа

trunc(323.63), -- целая часть числа

trunc(323.63234, 3), -- отсечение цифр после третьего знака после запятой

ceil(323.13), -- наименьшее целое, превосходящее данное

to_char(3.13684, '0.999'), -- приведение к шаблону

to_char(-3.13684, '0.999'), -- приведение к шаблону

to_char(3.13684, 'S0.999'), -- приведение к шаблону со знаком

to_char(-3.13684, 'S0.999'), -- приведение к шаблону со знаком

to_number('0,13624'), -- перевод строки в число (разделитель целой и дробной части задается настройками Oracle)

to_number(replace('0.13624', '.', ',')), -- меняем точку на запятую и переводим строку в число

to_number('0.13624', '0.99999'), -- перевод строки в число с заданным форматом

cast('0,13624' as number), -- еще один способ перевести строку в число

greatest(3, 2), -- наибольшее из набора чисел

least(3, 2, 7), -- наименьшее из набора чисел

mod(5, 3), -- остаток от деления 5 на 3

power(2, 10), -- 2 в степени 10

sign(-10), -- знак числа

sign(0), -- знак числа

sign(78), -- знак числа

to_number('82672389,234', '999999999D999', 'NLS_NUMERIC_CHARACTERS='', '''),

-- запятая - разделитель целой и дробной части, пробел - разделитель групп разрядов

to_number('82672389.234', '999999999D999', 'NLS_NUMERIC_CHARACTERS=''. '''),

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

to_number('82 672 389.234', '999G999G999D999', 'NLS_NUMERIC_CHARACTERS=''. ''')

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

from dual;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]