title: Oracle Number to_char returns hash symbol for very large numbers
body: <p>I have a .NET Windows Service that syncs a SQL Server database with an Oracle (11g) database (this is done manually since there are no primary keys in the 3rd party Oracle database and we can't use SQL Server replication). </p>
  
  <p>I use an MD5 hash of each row to check for differences between the publisher and subscriber and attempt to make sure the input to the MD5 function has the same format for both the SQL Server and the Oracle databases in order to compare apples with apples. So, in the case of a <code>NUMBER</code> column (which is a 'FLOAT' in the corresponding column in the SQL Server table) I format the value as follows:</p>
  
  <p><strong>Oracle</strong></p>
  
  <pre><code>select to_char(13.9, '000000000.00000000000000000000') 
  from dual;
  </code></pre>
  
  <p><strong>SQL Server</strong></p>
  
  <pre><code>select FORMAT(13.9, '000000000.00000000000000000000')
  </code></pre>
  
  <p>This works fine in most cases except, it seems, in the case of the Oracle <code>to_char</code> function when the value of the <code>NUMBER</code> column hits 10 figures e.g. 1000000000 (as opposed to 999999999) then <code>to_char</code> outputs a string of hash symbols: </p>
  
  <p><code>###############################</code></p>
  
  <p>This means that for certain values the input to my MD5 function differs between Oracle and SQL Server.</p>
  
  <p>Is there anything I can do with <code>to_char</code> to rectify this issue?</p>