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

Reply via email to