Подтвердить что ты не робот

Нежелательное ведущее пустое место в формате номера оракула

Мне нужно заполнить номера с ведущими нулями (всего 8 цифр) для отображения. Я использую oracle.

select to_char(1011,'00000000') OPE_NO from dual;
select length(to_char(1011,'00000000')) OPE_NO from dual;

Вместо '00001011' я получаю '00001011'. Почему я получаю лишние пробелы? Что такое правильная строка форматирования чисел для выполнения этого?

P.S. Я понимаю, что могу просто использовать trim(), но я хочу лучше понять форматирование чисел.

@Eddie: Я уже прочитал документацию. И все же я до сих пор не понимаю, как избавиться от ведущих пробелов.

@David: Это значит, что нет способа использовать trim()?

4b9b3361

Ответ 1

Используйте FM (режим заполнения), например.

select to_char(1011,'FM00000000') OPE_NO from dual;

Ответ 2

Из той же документации, упомянутой EddieAwad:

Отрицательные значения возврата автоматически содержат первый отрицательный знак и положительные значения автоматически содержат ведущее пространство, если только формат модель содержит формат MI, S или PR элемент.


EDIT. Правильный способ - использовать модификатор FM, как ответил Стив Босман. Подробнее читайте в разделе Форматировать модификаторы модели.