Search code examples
oraclesql-loader

Commit point in SqlLoader, Used rows not working


I am using SqlLoader to load huge file for this I need to change commit point.

I have used rows=1000 but it is not reflecting while executing. I have tried below command to do this :

>sqlldr user/pass@db control=myctl.ctl log=mylog.log rows=1000 

The above command is not changing the commit point for me. Is there any oracle environment file do I need to modify to change the commit point?


Solution

  • There is also the bindsize to consider. Bump that up to ensure that you get the rows values you want. eg

    C:\temp>sqlldr control=emp.ctl userid=/@db18_pdb1
    
    SQL*Loader: Release 18.0.0.0.0 - Production on Mon Oct 7 16:00:54 2019
    Version 18.6.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Path used:      Conventional
    Commit point reached - logical record count 250
    Commit point reached - logical record count 500
    Commit point reached - logical record count 750
    Commit point reached - logical record count 1000
    ....
    
    
    C:\temp>sqlldr control=emp.ctl userid=/@db18_pdb1 rows=1000 bindsize=8000000
    
    SQL*Loader: Release 18.0.0.0.0 - Production on Mon Oct 7 16:01:19 2019
    Version 18.6.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    Path used:      Conventional
    specified value for readsize(1048576) less than bindsize(8000000)
    Commit point reached - logical record count 1000
    Commit point reached - logical record count 2000
    Commit point reached - logical record count 3000
    Commit point reached - logical record count 4000