As part of the process to populate tables with some common dictionary data we have used interim tables. So, data was derived from source tables, put into interim tables, then cleared and go into final dictionary tables. After a while, the process starts fail sometimes. We found growing size of interim table due to failure of wiping out it.
truncate table DATA_INTERIM; Error report: SQL Error: ORA-01426: numeric overflow 01426. 00000 - "numeric overflow" *Cause: Evaluation of an value expression causes an overflow/underflow. *Action: Reduce the operands.
It turns out to be an Oracle bug (https://forums.oracle.com/thread/1094144)
The following info with ID was received from MOS: ORA-01426 While Truncating A Table Or Exchanging Partitions (Doc ID 882997.1) Bug 8618856 : TRUNCATE OF SPECFIC TABLE FAILS WITH ORA-01426 NUMERIC OVERFLOW
The workaround is to drop and recreate the table. Another way is to delete all rows, but it is too long due to huge amount of data.
drop table DATA_INTERIM; create table DATA_INTERIM (...) ;