Why is Oracle\'s to_char()
function adding spaces?
select length(\'012\'),
length(to_char(\'012\')),
length(to_char(\'12\', \'000\')
The extra leading space is for the potential minus sign. To remove the space you can use FM in the format:
SQL> select to_char(12,'FM000') from dual;
TO_C
----
012
By the way, note that to_char takes a NUMBER argument; to_char('012') is implicitly converted to to_char(to_number('012')) = to_char(12)