title: Efficiently Converting OracleDecimal to .NET decimal w/truncation
body: <p>I am getting an arithmetic overflow exception when trying to convert the following oracle spatial object to a coordinate set (decimals) in C# using <code>(decimal) OracleUdt.GetValue()</code></p>
  
  <pre><code>MDSYS.SDO_GEOMETRY(2001, 1041001, 
    MDSYS.SDO_POINT_TYPE(-2.89957214912471,1.56043985049899E-15,NULL),NULL,NULL)
  </code></pre>
  
  <p>According to <a href="http://download.oracle.com/docs/html/E10927_01/OracleDecimalStructure.htm" rel="nofollow">Oracle documentation</a>, this is likely because one of the decimal values exceeds .NET's precision range of 28 decimals.  Data that exceeds this precision limit in our database is <strong>extremely rare</strong>, and conversion needs to be as efficient as possible.</p>
  
  <p>What is the best option for handling this exception by gracefully truncating the result if it exceeds the maximum precision?</p>