<p>I need to pad numbers with leading zeros (total 8 digits) for display. I'm using oracle.</p>

<pre><code>select to_char(1011,'00000000') OPE_NO from dual;
select length(to_char(1011,'00000000')) OPE_NO from dual;
</code></pre>

<p>Instead of '00001011' I get ' 00001011'.
Why do I get an extra leading blank space? What is the correct number formatting string to accomplish this?</p>

<p>P.S. I realise I can just use <code>trim()</code>, but I want to understand number formatting better.</p>

<p>@Eddie: I already read the documentation. And yet I still don't understand how to get rid of the leading whitespace. </p>

<p>@David: So does that mean there's no way but to use <code>trim()</code>?</p>

From that same
documentation
mentioned by
EddieAwad
:
Negative return values automatically
  contain a leading negative sign and
  positive values automatically contain
  a leading space unless the format
  model contains the MI, S, or PR format
  element.
EDIT
: The right way is to use the FM modifier, as answered by Steve Bosman. Read the section about
Format Model Modifiers
for more info.