Hi - I created a temporary table mimicing your data and then created a process to extract/insert the data. Once inserted into a new table, I did a table to table comparison. The comparison gave all three rows as equal so is there something else you are doing in between the extract and the insert?
drop user ovug cascade;
create user ovug identified by passw0rd;
grant dba to ovug;
create table ovug.testtbl (keyval varchar2(5), numval number(*,0) not null);
insert into ovug.testtbl (keyval, numval) values ('00001',12345670551607123433666116255796);
insert into ovug.testtbl (keyval, numval) values ('00002',123456705516071234336661162);
insert into ovug.testtbl (keyval, numval) values ('00003',123456705516071234);
I am running Optim 11.3.0.7 and Oracle 12.2.
------------------------------
JIMMY WILSON
------------------------------