Double-Precision Unique Keys

When opening linked Oracle tables, the word #DELETED# appears in all fields.

 

Explanation:

This is a documented Microsoft bug. Access and Oracle implement double-precision, or floating point, data types differently. This causes problems with updatable data stores when the floating point number is assigned as the unique or primary key. It occurs when Access tries to compare the floating point number it calculates with the actual value in the Oracle table. Since the calculated and actual values do not agree, Access assumes the record it just wrote was deleted by another user.

 

Work-around:

A double-precision data type should never be assigned as the primary key of a table. The best solution is to redesign the Oracle table so it uses a and Integer (e.g., NUMBER(38))  that triggers a sequence to ensue uniqueness, rather than the floating point number.
 
If updatable data stores are not required, you can create pass-through queries that select all columns from the actual Oracle table, and then substitute the pass-through query for references to the linked tables in all affected queries. Note that Scriptoria automatically employs this technique when generating new Access applications that operate with the Oracle back-end object it creates.