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

[resolved] Help on tOracleBulkExec-cannot run program "sqlldr"

Hi All,
Can anybody help on this.
My Oracle 10g environment is on Linux Server.
And Talend is installed on windows 2003.
Talend Version is 4.1.2
When using component tOracleBulkExec to load file into oracle database.
Following error occurs
-------------------------------------------------------------------------
Exception in component tOracleBulkExec_1
java.io.IOException: Cannot run program "sqlldr": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)
at omantelbi.fixline_file_load_0_1.FIXLINE_FILE_LOAD.tFileList_1Process(FIXLINE_FILE_LOAD.java:4152)
at omantelbi.fixline_file_load_0_1.FIXLINE_FILE_LOAD.tChronometerStart_2Process(FIXLINE_FILE_LOAD.java:2961)
-------------------------------------------------------------------------
I try sqlldr manually in Oracle Server, and it works fine.
BTW, OracleConnection & OracleOutput works fine.
Labels (4)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Hi All,
Thanks.
After installed Oracle Client, and it works fine.

View solution in original post

6 Replies
Anonymous
Not applicable
Author

Please do me a favor!
Anonymous
Not applicable
Author

Have you set the environment variables for Oracle on the machine for the user that is runnin sqlldr?
See also http://ugweb.cs.ualberta.ca/~c391/manual/chapt3.html
Anonymous
Not applicable
Author

Hi Rob,
Thanks for you reply.
Since current I have two servers.
Server A (Linux with Oracle Installed)
Server B (Windows 2003 with Talend Installed)
I am not sure if when use Oracle Bulk operation in talend, oracle client needs to be installed on Server B?
As indcated by this webinfo
//www.talendforge.org/wiki/doku.php?id=doc:installation_guide_external_software
And the path of Server A is as follows:
sqlldr should have been included already.
------------------------------------------------
[]$ echo $ORACLE_HOME
/opt/oracle/product/10.2.0/db_1
[]$ echo $PATH
/opt/oracle/product/10.2.0/db_1/bin:/usr/sbin:/sbin:/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin
------------------------------------------------
Also I can run sqlldr manually on oracle server A.
But I am not sure what user talend would use when run the sqlldr?
Anonymous
Not applicable
Author

I am not sure if when use Oracle Bulk operation in talend, oracle client needs to be installed on Server B?

Hi
Yes, you are required to install Oracle client and set its path to system variable PATH if the job is executed on server B.
Best regards
Shong
Anonymous
Not applicable
Author

Hi All,
Thanks.
After installed Oracle Client, and it works fine.
Anonymous
Not applicable
Author

Hi Shong,
I am using Talend 5.6.1. 
I got the following error when I use tOracleOutputBulkExec:
-------------------------------------------------------------
Exception in component tOracleOutputBulkExec_1_tOBE
java.io.IOException: Cannot run program "sqlldr": CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessBuilder.start(Unknown Source)
at java.lang.Runtime.exec(Unknown Source)...
------------------------------------------------------------
I have Oracle11g client installed on my Windows machine and the following environment variables are set:
ORACLE_HOME: C:\Oracle\product\11.2.0\client_1
TNS_ADMIN: C:\Oracle\product\11.2.0\client_1\network\admin
PATH contains:  C:\Oracle\product\11.2.0\client_1\bin\
I have added a service name to the C:\Oracle\product\11.2.0\client_1\network\admin\tnsnames.ora
Could you please help me to figure out what has gone wrong?
Thank you,
Sophie