On 2019-12-16 16:18, Norbert Saint Georges wrote:
Dimitry Sibiryakov a écrit :
16.12.2019 15:42, Norbert Saint Georges wrote:
I am developing an application to import Oracle DBs to Firebird 4.
Do you mean "automatic import"?
yes, for people like me, who don't like tinkering with something other
than Firebird :-)
part_id is a number that has the
value:203974809258041991228294191469794647457
what should i use in firebird 4 to import part_id?
For exactly that big number (39 decimal digits) you can use only
string. Even in Firebird 4 NUMERIC is limited to 38 decimal digits.
int128 is not on 16 bytes planned in FB4?
Depending on how you look at it, Firebird doesn't have an int128
datatype, it has NUMERIC(38) and DECIMAL(38) which internally happens to
be backed by an int128.
That said, NUMERIC(38) can hold 39 digits, just not the full range, but
up to 2^127 - 1 or 170,141,183,460,469,231,731,687,303,715,884,105,727
So, the maximum:
170,141,183,460,469,231,731,687,303,715,884,105,727
Your number:
203,974,809,258,041,991,228,294,191,469,794,647,457
In other words, your number has 39 digits and is too big to fit in a
signed int128, and therefor is too big for NUMERIC(38)
BTW, as a DECFLOAT(16), that number would be
2039748092580420E+23, so you would lose +/- 23 digits of precision (more
due to rounding)
Mark
Firebird-Devel mailing list, web interface at
https://lists.sourceforge.net/lists/listinfo/firebird-devel