One Star

[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.
1 ACCEPTED SOLUTION

Accepted Solutions
One Star

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

Hi All,
Thanks.
After installed Oracle Client, and it works fine.
6 REPLIES
One Star

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

Please do me a favor!

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

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
One Star

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

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?
Community Manager

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

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
----------------------------------------------------------
Talend | Data Agility for Modern Business
One Star

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

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

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

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