я использовал следующий запросLTRIM дают странные ответы в Oracle
select ltrim('|7732-18-5|1314-13-2|','7732-18-5|') from dual;
ожидается ответ 1314-13-2 | но дает следующий ответ 4-13-2 |.
Это ошибка в Oracle? или я глупый программист?
я использовал следующий запросLTRIM дают странные ответы в Oracle
select ltrim('|7732-18-5|1314-13-2|','7732-18-5|') from dual;
ожидается ответ 1314-13-2 | но дает следующий ответ 4-13-2 |.
Это ошибка в Oracle? или я глупый программист?
http://docs.oracle.com/cd/B28359_01/olap.111/b28126/dml_functions_2018.htm#OLADM594 От:
Функция LTRIM удаляет символы слева от текстового выражения, со всеми левыми символами, которые появляются в другом текстовом выражении удалено. Функция начинает сканировать базовое текстовое выражение от его первого символа и удаляет все символы, которые появляются в выражении триммера, до тех пор, пока не достигнет символа, который не находится в выражении trim, и затем возвращает результат.
В этом случае число «4» не в своей комплектации Expressen '7732-18-5|'
, так что все вплоть до 4 удаляется, возвращая только 4-13-2 |
Чтобы получить ожидаемый результат, следует использовать функцию REPLACE вместо:
select replace('|7732-18-5|1314-13-2|','7732-18-5|') from dual;