Results 1 to 8 of 8

Thread: sqlldr problem

  1. #1
    Join Date
    Sep 2003
    Location
    Austin, TX
    Posts
    11

    Question Unanswered: sqlldr problem

    I am very much an Oracle newbie and was hoping for some guidance.

    I'm trying to run the following statement in Oracle 8.1:
    sqlldr user/password control=loadctls/control.ctl direct=true

    (To be completely accurate, I'm running it in PERL through:
    system("sqlldr user/password control=loadctls/control.ctl direct=true");

    However, I'm getting the following message back:
    'Can't exec "sqlldr": No such file or directory at runcontrol.pl line 320.'

    The file "control.ctl" does exist and is in the "loadctls" directory. (I've also tried using the full directory path, but the message does not change. The sqlldr function has worked fine before on this system.

    I appreciate your help.

    sjw

  2. #2
    Join Date
    Jul 2003
    Location
    US
    Posts
    314

    Path

    Hi

    As per what u have stated here, seems that sqlldr does not exist in your path.

    It seems that the system is not able to recognize sqlldr command ...
    why dont u specify the full path of the sqlldr in the exec("")

    That should do the job.
    Let me know if does not work, and I will install PERL on my system, and provide u with the resolution.

    Thanx and Regards
    Aruneesh

  3. #3
    Join Date
    Sep 2003
    Location
    Austin, TX
    Posts
    11
    Thank you so much, Aruneesh.

    I think you are right that it does not recognize sqlldr.

    >As per what u have stated here, seems that sqlldr does not exist in
    >your path.

    I checked my path in System Variables and see that "C:\oracle\ora81\bin" is listed there. (I am running in a client/server environment.) I searched my computer and found SQLLDR.EXE in that same directory.

    >It seems that the system is not able to recognize sqlldr command ...
    >why dont u specify the full path of the sqlldr in the exec("")

    I am not sure how to do this. The path to SQLLDR is on the local client and I'm telnetting to a server to run the commands. (I think you are getting to the root of the problem.)

    Again, I really appreciate your help,
    Steve

  4. #4
    Join Date
    Jul 2003
    Location
    US
    Posts
    314
    Where exactly are running the perl command/file
    i.e. where are you running the exec.

    The path should include the directory where sqlldr exists.

    Since you said you are telnetting to the server, I would assume that the perl file/command is being run on the same machine.

    If yes, you need to check if the path includes sqlldr on the server machine.

    Please do confirm the same.

    Thanx and Regards
    Aruneesh

  5. #5
    Join Date
    Sep 2003
    Location
    Austin, TX
    Posts
    11
    Aruneesh,

    >Where exactly are running the perl command/file
    >i.e. where are you running the exec.

    I am running the perl command file on a UNIX server that I am telnetting to from my Windows 2000 client. (I telnet to the server on which resides the perl command file, the sqlldr control file, and the data file called by the control file.)

    >The path should include the directory where sqlldr exists.

    My local (Windows) client path does include the directory that contains the sqlldr.exe file ("C:\oracle\ora81\bin").

    >Since you said you are telnetting to the server, I would assume that
    >the perl file/command is being run on the same machine.

    Yes, the perl file is being run on the server where it resides.

    >If yes, you need to check if the path includes sqlldr on the server
    >machine.

    I don't understand this part. The sqlldr.exe file is local. (I just tried placing it into the server directory with the Perl file and also modified my Windows path to include my mapping to the UNIX server directory, but still get the same message.)

    Again, thank you so much for your time and help.

    Steve

  6. #6
    Join Date
    Sep 2003
    Location
    Austin, TX
    Posts
    11

    Question still stuck

    I am still stuck here with the sqlldr problem. I believe that Aruneesh is on the right track and that it is a system/environment related problem, but I do not know how to proceed and solvethis problem.

    Any help would be much appreciated.

    Thanks,
    Steve

  7. #7
    Join Date
    Mar 2002
    Location
    Reading, UK
    Posts
    1,137
    OK if you are running the PERL script on the server but you have sqlldr on your PC then its going to be a bit difficult for the perl script on your server to see sqlldr on your pc.

    You either need sqlldr exe to be on the server and in the path on the server (if it is unix/linux type 'set' to see the path). You may need to install the oracle client if the Oracle database doesnt reside on it.

    Or run your perl script on your PC and specify the database using

    system("sqlldr user/password@database control=loadctls/control.ctl direct=true");

    and replace database with the database entry from your tnsnames.ora.

    Alan

  8. #8
    Join Date
    Sep 2003
    Location
    Austin, TX
    Posts
    11
    You're right my environment was not set adequately. (I did not have an ORACLE_HOME value in my UNIX path.) Now my path is looking in the right place and the script is running!

    Thanks so much for all the help!

    Steve

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •