Почему Oracle to_char() добавляет пробелы? Почему Oracle to_char() добавляет пробелы? select length('012'), length(to_char('012')), length(to_char('12', '000')) from dual; 3, 3, 4 Ответ 1 Маска формата, которую вы используете, имеет фиксированную ширину и позволяет использовать знак минус Ответ 2 Дополнительное ведущее пространство для знака минус минус. Чтобы удалить пространство, вы можете использовать FM в формате: SQL> select to_char(12,'FM000') from dual; TO_C ---- 012 Кстати, обратите внимание, что to_char принимает аргумент NUMBER; to_char ('012') неявно преобразуется в to_char (to_number ('012')) = to_char (12) Ответ 3 Чтобы сделать ответы более ясными: select '['||to_char(12, '000')||']', '['||to_char(-12, '000')||']', '['||to_char(12,'FM000')||']' from dual [ 012] [-012] [012]
Ответ 1 Маска формата, которую вы используете, имеет фиксированную ширину и позволяет использовать знак минус
Ответ 2 Дополнительное ведущее пространство для знака минус минус. Чтобы удалить пространство, вы можете использовать FM в формате: SQL> select to_char(12,'FM000') from dual; TO_C ---- 012 Кстати, обратите внимание, что to_char принимает аргумент NUMBER; to_char ('012') неявно преобразуется в to_char (to_number ('012')) = to_char (12)
Ответ 3 Чтобы сделать ответы более ясными: select '['||to_char(12, '000')||']', '['||to_char(-12, '000')||']', '['||to_char(12,'FM000')||']' from dual [ 012] [-012] [012]