SELECT TRANSLATE('123 455,23', '., ', '..') xl, TRANSLATE О-123 455.23', '., ', '..') х2 FROM dual
XI Х2
123455.23 -123455.23
Функция SUBSTR(str, m [,n])
Функция SUBSTR возвращает фрагмент строки str, начиная с символа m длиной п символов. Длину можно не указывать — в этом случае возвращается строка от символа m и до конца строки str. Нумерация символов идет с 1. Если указать m = 0, то копирование все равно начнется с первого символа. Задание отрицательного значения m приводит к тому, что символы отсчитываются от конца строки, а не от начала. Задание значений т, превышающих по абсолютному значению длину строки, приводит к тому, что функция возвращает NULL.
Пример:
SELECT SUBSTRCY попа была собака', 13) xl, SUBSTRCY попа была собака', -6) х2, SUBSTR('3to тестовый текст', 5, 8) хЗ, SUBSTRCy попа была собака', 150) х4 FROM dual
|
XI |
Х2 |
ХЗ |
Х4 |
|
собака |
собака |
текстовый |
NULL |
Функция INSTR(str, search_str [,n[,m]])
Функция INSTR возвращает позицию первого символа т-го фрагмента строки str, совпадающего со строкой search_str. Сравнение ведется с п-го символа строки str, при сравнении учитывается регистр. По умолчанию п = m = 1, то есть поиск ведется от начала строки и возвращается позиция первого найденного фрагмента. В случае неуспешного поиска функция возвращает 0.
Примеры:
SELECT INSTR('y попа была собака', 'собака') xl,
INSTR('y попа была собака', 'кошка') х2,
INSTR('Это текст для демонстрации поиска текста',
'текст', 1, 2) хЗ,
INSTRC11111000000001', '1', 7) х4
FROM dual
|
XI |
Х2 |
ХЗ |
Х4 |
|
13 |
0 |
35 |
14 |
С данной функций, равно как и со всеми остальными в Oracle, часто допускаются типовые ошибки, связанные с обработкой значения NULL. Если str=NULL, то функция вернет NULL, а не ноль! Это необходимо учитывать при построении различных условий. Например, данный фрагмент программы на PL/SQL как раз не учитывает эту особенность:
предыдущаяследующая