Problems modifying custom Table

Cathy Wilbur

Well Known Member
I added a new custom table to the database thru One World with no problems. I then added data to this table thru Oracle. I defined a business view to this table. I then defined a custom window for this business view. It was then noted that we forgot to add some additional fields.

So I went back into this table and added the five new fields and this caused a problem. I DID NOT delete my test data before I added the new fields. When I regenerated the table that deleted the data as expected.

Now I have 5 fields in the table that have the data defined as Double Precision with a size of zero. When I went back into Oracle to readd my test data I came across this problem. This is really strange because the file defn looks fine in One World.

How do I fix the problem WITHOUT DELTETING the custom table. I have a custom window all coded so I don't want to loose the window.

Any ideas. Please see my two attachments.
 

Attachments

  • 104465-Oracle_View_of_Table_F55PDTL.jpg
    104465-Oracle_View_of_Table_F55PDTL.jpg
    58.2 KB · Views: 90
Cathy,

there is no problem. OneWorld defines numbers in Oracle as Floating Point with a max precision of 38 significant digits. see below:

The NUMBER datatype
Stores zero, positive, and negative numbers, fixed or floating-point numbers

Fixed-point NUMBER
NUMBER(p,s)
precision p = length of the number in digits
scale s = places after the decimal point, or (for negative scale values) significant places before the decimal point.


Integer NUMBER
NUMBER(p)
This is a fixed-point number with precision p and scale 0. Equivalent to NUMBER(p,0)

Floating-Point NUMBER
NUMBER
floating-point number with decimal precision 38

Confusingly the Units of measure for PRECISION vary according to the datatype.
For NUMBER data types: precision p = Number of Digits
For FLOAT data types: precision p = Binary Precision (multiply by 0.30103 to convert)

{So FLOAT = FLOAT (126) = 126 x 0.30103 = approx 37.9 digits of precision.}

Example

The value 7,456,123.89 will display as follows
NUMBER(9) 7456124
NUMBER(9,1) 7456123.9
NUMBER(*,1) 7456123.9
NUMBER(9,2) 7456123.89
NUMBER(6) [not accepted exceeds precision]
NUMBER(7,-2) 7456100
NUMBER 7456123.89
FLOAT 7456123.89
FLOAT(12) 7456000.0
Oracle stores all numeric data in variable length format.

Storage space is therefore dependent on the length of all the individual values stored in the table. Precision and scale settings do not affect storage requirements. DATA_SCALE may appear to be truncating data, but Oracle still stores the exact values as input. DATA_PRECISION can be used to constrain input values.
 
Back
Top