Get the rowID shard range with the following SQL
SELECTRowNum|| ', ' || 'rowID between' ||Chr the)||Dbms_rowid.rowid_create (1, DOI, Lo_fno, Lo_block,0)||Chr the)|| ' and' ||Chr the)||Dbms_rowid.rowid_create (1, DOI, Hi_fno, Hi_block,1000000)||Chr ( the) Data from(SELECT DISTINCTDOI, GRP, First_value (RELATIVE_FNO) Over(PARTITION byDOI, GRPORDER byRELATIVE_FNO, block_id rowsbetweenunbounded preceding andunbounded following) Lo_fno, First_value (block_id) Over(PARTITION byDOI, GRPORDER byRELATIVE_FNO, block_id rowsbetweenunbounded preceding andunbounded following) Lo_block, Last_value (RELATIVE_FNO) Over(PARTITION byDOI, GRPORDER byRELATIVE_FNO, block_id rowsbetweenunbounded preceding andunbounded following) Hi_fno, Last_value (block_id+Blocks- 1) Over(PARTITION byDOI, GRPORDER byRELATIVE_FNO, block_id rowsbetweenunbounded preceding andunbounded following) Hi_block,SUM(blocks) Over(PARTITION byDOI, GRP) sum_blocks, Subobject_name from(SELECTObj.object_id, obj. Subobject_name, obj. data_object_id asDOI, Ext.relative_fno, ext.block_id,SUM(blocks) Over()SUM, SUM(blocks) Over(ORDER bydata_object_id, RELATIVE_FNO, block_id)- 0.01Sum_fno, TRUNC ((SUM(blocks) Over(ORDER bydata_object_id, Relative_fno, BLOCK_ID)- 0.01)/ (SUM(blocks) Over()/ &CNT)) GRP, Ext.blocks fromdba_extents ext, dba_objects objWHEREExt.segment_name= '&object_name' andExt.owner= '&owner' andObj.owner=Ext.owner andObj.object_name =Ext.segment_name andObj. data_object_id is not NULL ORDER bydata_object_id, Relative_fno, block_id)ORDER byDOI, GRP);
ORACLE rowID slicing Large tables