Skip to Main Content

Oracle Database Discussions

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Cannot copy more than 4 billion rows over a dblink???

User328666Dec 9 2014 — edited Dec 9 2014

I was running a series of insert /* +append */ into foo select * from foo@dblink.  It worked fine on a set of small tables less than 1 billion rows each, but failed on a large table 4.5 billion rows.  The actual error message shown here:

ERROR at line 1:

ORA-00600: internal error code, arguments: [qerrmOFBu1], [3148], [ORA-03148: OCI_ATTR_ROW_COUNT cannot return

a row count exceeding UB4MAXVAL. The actual row count is [4295000059]], [], [], [], [], [], [], [], [], []

The table has 420 partitions, and the largest partition only has 14 million rows, but it seems Oracle blows up at the table level.  Maybe Oracle is using a 32 bit counter for UB4MAXVAL2^32 is 4,294,967,296 and you can see variable OCI_ATTR_ROW_COUNT got higher than that as shown in the error message, so one variable is defined well and the other too small (just guessing).

I still have to copy a larger table with 20 billion rows.  That should be interesting!  Maybe I should rewrite all of my statements to work at the partition level.

64-bit Oracle 12cR1 Enterprise Edition with patch set 12.1.0.2 on Oracle Linux 6.5 with 512 GB RAM:  SGA 200 PGA 100G, free 100 GB.  Plenty of storage free space (10 TB free at time of error).  CPU was only 10% utilized.

Thoughts? 

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 6 2015
Added on Dec 9 2014
6 comments
2,043 views