Det extra inledande utrymmet är för det potentiella minustecknet. För att ta bort utrymmet kan du använda FM i formatet:
SQL> select to_char(12,'FM000') from dual;
TO_C
----
012
Observera förresten att to_char tar ett NUMBER argument; to_char('012') konverteras implicit till to_char(to_number('012')) =to_char(12)