Invalid precision for decimal data type

S

sinch

I am experiencing a problem migrating my database from access 97 to
access XP.

The MDB is a front end for an Oracle 9i database.
Several passthrough queries fail with "Invalid precision for decimal
data type"

The problem seems to be centered around Oracle returning full stops as
part of the column name and another numeric column. For example using
Oracle's sample "Scott" schema:

select empno "foo" , mgr
from emp

works fine whereas

select empno "foo.bar" , mgr
from emp

fails becuase the returned column name has a full stop. Similarly

select e.empno , mgr
from emp e

Works becuase Oracle recognises the column name and strips off the table
alias, but

select nvl(e.empno,0) , mgr
from emp e

Fails becuase oracle returns "nvl(e.empno,0)" as the column name. The
nvl() could be aliased again to remove the full stop and it would work.

Slightly stranger is that

select empno "foo.bar" , ename
from emp

Works becuase ename is not a number.

Access 97 works with all of these queries, apparently because it removes
everything up to and including the final full stop from the returned
column name.

Can anybody tell me what is going on? Better yet a solution other than
"Alias everything in your application and hope for the best"

Chris...
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top