es336td wrote:
I remove all designation and set to just NUMBER. From Oracle documentation...
NUMBER(p,s)
Number having precision p and scale s. The precision p can range from 1 to 38. The scale s can range from -84 to 127.
There are 2 different concepts of number here. You should not mix them up.
With Number, there is no explicit precision and no explicit scale. That is, there are no arguments p, s. In that case, Oracle stores a number in the form d * 10^s, where d is a number that can have up to 38 digits and s ranges between -84 and 127. This is similar to the so-called scientific notation.
However, your original question is about 123.87654321. You want this number to differ from 123.87700000. These are decimals, which imply you require precision and scale. The number 123.87654321 requires the type Number(11,8). You had allocated Number(10,8) to it, which falls short.
I also notice that the conversion 123,87700000 has a comma. If that is indeed so, and not just a typing mistake, then it means two things: (1) The conversion already occurred, even before the database, in a locale in which a comma is used as decimal separator; (2) the database column is not of numeric type.