Ведущие символы не являются пробелами. Если бы они были без украшений, ltrim()
удалил бы их. Поэтому они должны мне что-то еще. Чтобы выяснить это, мы можем использовать dump()
для отображения значений ascii всех символов в строке.
Оповещение о спойлере: в следующем примере они окажутся вкладками :)
with tab_name as (
select chr(11)||chr(11)||'56789' as column_name from dual
)
select dump(column_name)
from tab_name
/
дает нам
Typ=1 Len=7: 11,11,53,54,55,56,57
Итак, теперь мы знаем, с чем имеем дело, мы можем использовать ltrim()
с дополнительным параметром для удаления ведущих вкладок. Так что, конечно, это сработает, мы можем привести его к числу:
with tab_name as (
select chr(11)||chr(11)||'56789' as column_name from dual
)
select to_number(ltrim(column_name, chr(11)))
from tab_name
/
Хммммм, после того как я написал это, ОП опубликовал вывод своего dump()
запроса:
Typ=1 Len=6: 57,57,57,57,57,57
Это шесть девяток, нет невидимых ведущих символов. Другими словами, откуда бы ни пришло заполнение, это не данные.
Так что это ответ на другой вопрос: (