PDA

View Full Version : Solved: ORACLE ODBC Error precision too small



kunguito
10-10-2008, 01:25 AM
Hi,

I connected to an ORACLE DATABASE using an ODBC from Access. Most tables work as requested but there's one that when opened promts this error message.

The decimal field's precision is too small to accept the numeric you attempt to add.

The table is full of #Error, #Error, ...

Any idea of what's happening?
Maybe Access version?

Oorang
10-15-2008, 12:11 AM
Hi David,
"Precision" is just a fancy way of saying "number of decimals". Example: 3.14159265 has more precision than 3.14. All the error is saying is that you are trying to put a number with too many decimal places into a field that has a data-type that is too small to handle it.
When you look at the data type of the field in Access, what type is it? What type is it in Oracle? Post back, we should be able to get you rolling (hopefully).

kunguito
10-15-2008, 02:56 AM
Hi Oorang,

When you look at the data type of the field in Access, what type is it?
First of all I link the table from the Tables menu. So I don't decide the data type. Importing the table is not an option. Maybe I could just use a temporary table.

Do you know the OO4O (Ole objects for oracle)? Would it help using it? I have it installed, but right now I don't have a lot of time to go over it.


What type is it in Oracle?
In oracle Type: DECIMAL, Length: 10

Somebody already suggested upgrading the access versi?n. I am currently using Access 2002 and even though I'm not sure it would help it is just unfeasible to upgrade. stupid orporate software policy.

Thanks dude!!!

Oorang
10-15-2008, 03:33 AM
Hi David,
You can still see what the field type is on a linked table. But I want to ask a few more questions...

In Oracle the Decimal datatype is defined by two lengths, the length before the digit, and the length after. I assume you meant it was 10 digits after. How long before?

If I recall correctly that field type can be null in Oracle, does the field allow null values? If so, are there null values in the dataset? How do they currently show in access?

Are you pulling straight from a table in the Oracle DB or are you linking to a query in the Oracle DB?

kunguito
10-15-2008, 03:54 AM
I know I still can see the field type in a linked table. I can't modify it,though.

The metadata explorer I got says fields have Length 10 and precision 0.
And the data type is DECIMAL.

Recall that the message was:

The decimal field's precision is too small to accept the numeric you attempt to add.

I don't know if it accepts Null values. The table in access looks full of #Error. I don't see any Null.

I pull directly from a Table.

Oorang
10-16-2008, 04:50 AM
I know, but I suspect your issue is that the ODBC driver used to create the link is just not able to convert. What I was trying to drill down to was what might be confusing it so I could suggest a possible change to unconfuse it. A good starting point would be to switch the driver you used to make the link.
Did you use the MS Oracle driver or Oracle's? Try switching over. Sorry to be so non specific, but it's a little difficult to debug without being able to look at it:)

kunguito
10-30-2008, 07:49 AM
Hi Oorang,

It seems you were right.
I had installed the Oracle ODBC which is in general faster but has problems converting decimal values.

Here is the link of the MS ODBC version in case someone needs it.
http://support.microsoft.com/kb/829558/en-us

It's important that the language version corresponds to the access installation language.

Oorang
10-31-2008, 05:20 AM
Sweet:)