Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

tOracleBulkExec_1 Cannot run program "sqlldr": error=2, No such file or directory

Greetings,

 

We have a nfs mount where multiple Oracle client versions are installed and this Oracle directory is mounted in our Linux server. Now, when we use tDBBulkexec component and execute a job it fails with the error:

 

java.io.IOException: Cannot run program "sqlldr": error=2, No such file or directory.

 

I went ahead and checked the .profile of the id which runs this job and there is Oracle_home setup like below:

ORACLE_HOME=/opt/oracle/lin64-10.2.0.4

PATH=$PATH:/opt/oracle/lin64-10.2.0.4/bin

 

both the above directory exists. Still the job fails with java.io.IOException: Cannot run program "sqlldr": error=2, No such file or directory.

 

Can you let me know what is the cause?

Labels (3)
7 Replies
akumar2301
Specialist II
Specialist II

check if you have sqlldr in path /opt/oracle/lin64-10.2.0.4/bin if yes , 

please check if you are able to run command sqlldr on the machine manually.

Anonymous
Not applicable
Author

Yes sqlldr exists in this directory.

We tried a sudo access of an admin id and executed this job and it works fine now.

 

Now, I have to identify why it won't work for my id. Because, I copy-pasted the .profile of admin id to my id and executed the job and it still fails, whereas it works with the admin id. What needs to be checked here?

 

Thanks!

Glory Glory Manchester United

akumar2301
Specialist II
Specialist II

Can you please check if you have all correct permission(read,write,execute)
on sqlldr or on Oracle bin folder with your user.

.profile will not change the permissions. It is configuration for specified
user. So copy-paste will not work and might create other issues.


Anonymous
Not applicable
Author

Ok, I checked and this sqlldr file has rwxr-xr-x. group and others can read/execute but can't write. (777) is necessary?

We're facing performance issue as well with this component, for 10 seconds - 30,000 records are getting loaded in the table. But, we need to achieve 4500- 5000 records per second to match with the parallel processing power of DataStage. Any ideas for increasing rows/second in tdbbulkexec?

 

Thanks!

 

joearun4u
Creator
Creator

Hi Gohan,

 

With the help of Load options available in Advanced settings of tOracleOutputBulkExec, you can achieve the fast loading of data.

 

Below load options helped me to load 800Million records in 1 hr 45 mins when i try to laod from MSSQL to Oracle DB. You can also use cursor in source component to reduce the process time. Try out and let know.

 

0683p000009M3Y4.jpg

 

 

Thanks,

Joe

 

<Dont forget to give kudos / solution achieved as I am using my time for your issue>

 

Anonymous
Not applicable
Author

We added these options, still we don't see an improved performance.

joearun4u
Creator
Creator

Hi Gohan,

 

Can you please elaborate your requirement so that I can go indepth of your issue.

 

Whats your source,

how you connected the components,

Did you use cursor,

whats the fields count in source,

How complex the transformation is ,

how you calculated the performance ?

 

did your db enabled the parallel execution ?

do you have your own control file ?

please provide more details .

 

Thanks,

Joe