PC Review


Reply
Thread Tools Rate Thread

Oracle OleDB and high precision NUMBER fields --> DBTYPE_VARNUMERI

 
 
=?Utf-8?B?TWljaGFlbA==?=
Guest
Posts: n/a
 
      14th Sep 2004
I have problems readings rows via OleDBDataReader or OleDBDataAdapter when a
NUMBER column in Oracle has a precision greater than 28 digits.
If I save e.g. 1E30 in a NUMBER column (via TOAD or SQL+ ...) and try to
read the correspondending row via OLeDB I get a
System.Data.OleDb.OleDbException: Accessor is not a parameter accessor
Very bad behaviour is, that I can't read out other columns of such a row
even if those columns have normal types (like varchar...).

This behaviour can be reproduced with OraOLEDB and the MSDAORA dataprovider.

I see via OleDBDatReader.GetDataTypeName(int ord) that those Oracle NUMERIC
column will be mapped to DBTYPE_VARNUMERIC. But it seems, that no mapping is
possible (definied) to a CLR data type.

In short: If a NUMERIC column contains 1000 or 3.14152 everything works
fine. If content is 1e30 or
1.111111111111111111111111111111111111111111111e-100 reading fails with an
exception.

I had contacted the Oracle support. They told me:
"Here is the answer from development team regarding your issue.
..NET decimal data type does not support precision more than 28 and hence the
issue with OraOLEDB as well as MSDAORA. In fact, you would see the same
issue with SQLOLEDB and SQL Server. It is more of a .NET limitation rather
then a provider one."

Is there a common how to solve this problem? It least it should be possible
to map high precision table content to a double by default- even if there is
a loss in precision.

Thanks for every comment,
Michael


 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Determine if a number falls between two numeric fields (low/high) Jodi J Microsoft Access 2 31st Mar 2008 08:08 PM
Sequence.nextval numeric type in Oracle 10g differs from Oracle 8i when using MS OleDb provider alasdair.johnson@gmail.com Microsoft ASP .NET 0 27th Apr 2007 06:57 PM
Oracle timestamp precision leodippolito@gmail.com Microsoft ADO .NET 0 29th Sep 2005 03:42 AM
Camera phones will be high-precision scanners Becky News Editions 0 15th Sep 2005 12:04 PM
Getting number fields back from Oracle =?Utf-8?B?bWNsYWdldHQ=?= Microsoft VC .NET 0 15th Aug 2005 07:07 AM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 08:24 PM.