Удалить лишнее пространство - PullRequest
0 голосов
/ 23 мая 2019

У меня есть такие данные: ' 999999'.Я хочу убрать лишний пробел или что-то еще перед цифрами.

В моей таблице данные типа varchar2.Я пробовал replace (), trim (), ltrim (), replace (), но ничего не получалось.Тем не менее, когда я загружаю CSV-файл из SQL Developer, он показывает такие данные - , 9999999, (с пробелом перед цифрами).Но я не хочу, чтобы перед цифрами было пробел или что-то еще.

Я пытался:

UPDATE tablename SET column name= ltrim(column name) where abc= '13712';

Пожалуйста, дайте мне знать решение.

Когда я передамданные в dump() Я получаю этот вывод:

Typ=1 Len=6: 57,57,57,57,57,57

Примечание редактора: Уценка подавляет начальные пробелы в 999999, даже когда мы используем обратные метки, поэтому я имеювведены знаки препинания для обеспечения представления.

1 Ответ

4 голосов
/ 23 мая 2019

Ведущие символы не являются пробелами. Если бы они были без украшений, 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

Это шесть девяток, нет невидимых ведущих символов. Другими словами, откуда бы ни пришло заполнение, это не данные.

Так что это ответ на другой вопрос: (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...