Calling SQL*Loader from PERL; Message 2100 not found

I am trying a simple PERL script to call sqlldr and load data into an Oracle 10G database. I get the error message:
Message 2100 not found; No message file for product=RDBMS, facility=UL
Many forums have said the answer to this is to set environment variables like ORACLE_HOME and PATH. Even having done that I get this error. My script looks like:
#!E:\CommonApps\Perl\Perl\bin -w
$ENV{ORACLE_HOME}='E:\CommonApps\oracle';
print "Oracle HOME is: ";
print $ENV{ORACLE_HOME};
print "\n";
$ENV{PATH} = 'E:\CommonApps\oracle;E:\CommonApps\oracle\bin';
print "Path is ";
print $ENV{PATH};
print "\n";
if ($#ARGV != 7) { print "Incorrect Usage of runsqlldr\n";print "Usage: perl runsqlldr.pl dbuser dbpass dbname datafile discard ctlfile logfile badfile \n"; exit; }
$dbuser=$ARGV[0];
$dbpass=$ARGV[1];
$dbname=$ARGV[2];
$datafile=$ARGV[3];
$discard=$ARGV[4];
$ctlfile=$ARGV[5];
$logfile=$ARGV[6];
$badfile=$ARGV[7];
if (system("sqlldr userid=$dbuser/$dbpass\@$dbname control=$ctlfile data=$datafile=log=$logfile bad=$badfile discard=$discard SKIP=1 ERRORS=10000 ROWS=10000 BINDSIZE=512000 PARALLEL=TRUE") != 0) {
die "\n Running sqlldr failed!\n";
exit 0;
Is there anything else I need to do to make this work? The E:\CommonApps\oracle\rdbms\mesg directory has 3 files: kgpus.msb, ocius.msb, oraus.msb.
Thanks
Arvind

*** Duplicate Post *** {code}                                                                                                                                                                                                                           

Similar Messages

  • Calling SQL*Loader from Forms

    Hi,
    I was wondering if anyone has called SQL*Loader from Forms?
    What I am wanting to do is use Oracle Forms as the interface where you can specify a file that you can import into the database and it will use a set control file. Push the import button and SQL*Loader does the rest.
    Is using Java code to call SQL*Loader from Forms a viable option, or is there an easier way to achieve the desired outcome.
    Any ideas or guidance will be much appreciated.
    Thanks,
    Scott.

    Scott,
    In forms, there's a HOST built-in command which is supposed to execute any o/s commands.
    What you have to do is :
    1. Bult up the string exacltly in the fashion which you will run in o/s
    2. Call the HOST Built-in and pass in the string
    Here's a example :
    Declare
    lOsCmd Varchar2(1000) := Null;
    Begin
    lOsCmd := 'sqlldr user-id=userid/passwd@connectStr '
    || ' control=c:\temp\abc.ctl log=c:\temp\abc.log '
    || ' bad = c:\temp\abc.log';
    Host (lOsCmd, No_Screen);
    End;
    -- Shailender Mehta --

  • Calling Sql-loader from PL/SQL

    What is the command(s) to call Sql-Loader from inside a PL/SQL procedure?
    Regards,
    Ahmad.

    I don't think it is possible ...

  • Calling Sql*Loader from oracle Form builder

    How do i call sql* loader from my forms to import the external data in different formats into my existing database?
    Specify the flexibility of sql* loader to import external data from .txt files or .xls files.
    Would be thankful if certain examples are given along with the answer.

    Hi,
    1. First you have to create seperate ctl (Control files) which maps to different file formats
    2. Using Oracle Forms,
    2a) You can use the 'HOST' command to execute the command line ie. In this case executing
    SQL*Loader script
    2b) You also have the feature in ORACLE forms to read text files and load the data into
    ORACLE db.
    This can be achieved by using TEXT_IO package which comes with ORACLE Forms.
    Hope this helps
    Ta
    Shailender

  • Sqlldr:  Message 2100 not found - No msg files in my RDBMS\Mesg dir

    Hi All,
    I am trying to use sqlldr on an WIN2003R3 server. This is not working and I get an error message:
    MESSAGE 2100 NOT FOUND: WHEN ATTEMPTING TO START SQLLDR.
    I searched the internet and there it states that this should have to do with my ORACLE_HOME or ORACLE_BASE environment variables or path. I checked those, but they seem fine.
    On metalink it states two possiblities, for WIN NT,
    - Removing the ORACLE_HOME env. variable
    - Copy the files from another Oracle installation
    (Metalink Note:171648.1 and Note:1081848.6).
    I tried the first, but still doesnot work. Unfortunately I can't try the second, because all other Oracle installations I have access to are the same version, so they all have the same files in the RDBMS\Mesg directory.
    My questions are:
    - How many files should there be in the mentioned directory? (Now I've got 4: kgpus.msb, ocius.msb, oraus.msb, smgus.msb )
    - Where can I get the missing files, or is there any other way to get around this?
    - any ohter suggestions?
    Thanks in advance. Any help will be appreciated,
    Regards,
    Toin.
    Message was edited by:
    Toin
    Fixed a typo.
    Message was edited by:
    Toin

    The problem is that my SQL Loader is not working under WIN NT. This is a known issue, one of the suggestions I found on metalink is to manually copy the message files that should be in ORACLE_HOME\DBMS\Mseg from another Oracle installation.
    I cannot do this, because all my Oracle installations are the same. So the questions is where can I find the appropriate message files, so I can get my SQL Loader to run??
    Thanks.
    Toin.

  • Message 2100 not found; No message file for product=RDBMS, facility=UL

    Hi,
    I am trying to run sqlldr. But I got this message:
    Message 2100 not found; No message file for product=RDBMS, facility=UL;
    I checked my ORACLE_HOME and it is set to: C:\oraclexe\app\oracle\product\10.2.0\server which includes the folders BIN,RDBMS, ....
    I checked my C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS and there is no ORAUS.MSG inside the folder. If this is the solution where can I find this file? I read in the forums to copy it from the server directory to the client, but I couldn't find it anywhere on my machine.
    Thanks,
    M

    Thansk, I really appreciate your help. This is the result:
    AGSDESKTOPJAVA=C:\Program Files (x86)\ArcGIS\Desktop10.0\
    ALLUSERSPROFILE=C:\ProgramData
    APPDATA=C:\Users\Matt\AppData\Roaming
    CommonProgramFiles=C:\Program Files\Common Files
    CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
    CommonProgramW6432=C:\Program Files\Common Files
    COMPUTERNAME=Smith
    ComSpec=C:\Windows\system32\cmd.exe
    DEFLOGDIR=C:\ProgramData\McAfee\DesktopProtection
    FP_NO_HOST_CHECK=NO
    HOMEDRIVE=C:
    HOMEPATH=\Users\Matt
    JAVA_HOME=C:\Program Files\Java\jdk1.6.0_23
    LOCALAPPDATA=C:\Users\Matt\AppData\Local
    LOGONSERVER=\\Smith
    NUMBER_OF_PROCESSORS=2
    ORACLE_BASE=C:\oraclexe\app\oracle
    ORACLE_HOME=C:\oraclexe\app\oracle\product\10.2.0\server
    ORA_NLS=C:\oraclexe\app\oracle\product\10.2.0\server\nls
    OS=Windows_NT
    Path=C:\XEClient\bin;C:\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Windows
    \system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerSh
    ell\v1.0\;c:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn\;C:\MATLAB\R
    2010a\runtime\win64;C:\MATLAB\R2010a\bin;C:\Program Files (x86)\Common Files\Rox
    io Shared\DLLShared\;C:\Program Files (x86)\Common Files\Roxio Shared\10.0\DLLSh
    ared\
    PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
    PROCESSOR_ARCHITECTURE=AMD64
    PROCESSOR_IDENTIFIER=Intel64 Family 15 Model 6 Stepping 2, GenuineIntel
    PROCESSOR_LEVEL=15
    PROCESSOR_REVISION=0602
    ProgramData=C:\ProgramData
    ProgramFiles=C:\Program Files
    ProgramFiles(x86)=C:\Program Files (x86)
    ProgramW6432=C:\Program Files
    PROMPT=$P$G
    PSModulePath=C:\Windows\system32\WindowsPowerShell\v1.0\Modules\
    PUBLIC=C:\Users\Public
    RoxioCentral=C:\Program Files (x86)\Common Files\Roxio Shared\10.0\Roxio Central
    36\
    SESSIONNAME=Console
    SQLPATH=C:\XEClient\sqlplus
    SystemDrive=C:
    SystemRoot=C:\Windows
    TEMP=C:\Users\Matt\AppData\Local\Temp
    TMP=C:\Users\Matt\AppData\Local\Temp
    USERDOMAIN=Smith
    USERNAME=Matt
    USERPROFILE=C:\Users\Matt
    VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools
    VS90COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\Tools\
    VSEDEFLOGDIR=C:\ProgramData\McAfee\DesktopProtection
    windir=C:\Windows

  • Message 2100 not found; No message file for product=RDBMS, facility=ULMessa

    hi all,
    I am using windows2000 and 10g i am running loader using java
    but getting a message like
    Message 2100 not found; No message file for product=RDBMS, facility=ULMessage
    I have checked oracle_home and path in my env setting. but no progress same message i am getting
    but its running fine using cmd prompt.
    please help
    thanks in advance.

    First 10g is not a version it is a marketing label. What is the version number (to 3 decimal places).
    Second can you expand your question to explain you this has to do with AQ? How are enqueued, what code is executing to dequeue? We can make guesses but they may have nothing to do with your actual environment.

  • Calling SQL*Loader from OCCI

    Hi All,
    I need to access SQL*Loader from C++.
    I know there is an interface for OCI to access SQL*Loader.
    I also know there is a gnu project of a c++ wrapper to the OCI-SQL*Loader interface (odpd).
    According to the OCCI documentation it is just a C++ facade of OCI (with some goodies like thread managing , etc.).
    I want to know the following:
    1. How can I operate OCI from OCCI?
    2. Are there are source samples of operating OCI from OCCI or even better operating OCI SQL*Loader interface from OCCI?
    3. Are there are any known (/unknown :-) ) problems with either OCCI access to OCI or OCI interface itself to the SQL*Loader?
    Thanks,
    Arik

    Hi,
    If you have a OCCI application and you want to interoperate with OCI, you can retrieve the underlying OCI handles from OCCI objects and write OCI code.
    e.g :-
    //with Environment env, Connection conn OCCI objects
    OCIEnv *ocienv = env->getOCIEnv();
    OCISvcCtx *ocisvc = conn->getOCISvcCtx();
    //use OCI calls
    OCIError *errhp;
    OCIHandleAlloc (ocienv, &errhp, OCI_HTYPE_ERROR,...);
    OCIHandleAlloc (ocienv, &dpctx, OCI_HTYPE_DIRPATH_CTX,..);
    err = OCIDirPathLoadStream(...);
    OCCI does not have a direct path API at present.
    Thanks.

  • How to Call SQL Loader from Java ( servlet )?

    We need to call SQL Loader command from Java Servlets? Any suggestions how this can be done?
    Thanks
    Rahul

    Probably not the best way, but you could try using JNI to call a C function which then invokes SQL Loader via system() or exec(). I haven't done this myself though...

  • Calling SQL Loader from Forms 4.5 using HOST command in Win2000

    One of my forms calls SQL Loader 7.3 using HOST command to load a csv file onto the database(Oracle 7.3) under Windows 2000 platform.
    Only after sql loader finishes its operation the control should come to my form i.e. synchronous execution.
    As of now its running asynchronously.
    Is there any way to make it synchronous. If Not any other work arounds?
    Environment Details
    Forms [32 Bit] Version 4.5.10.6.0 (Production)
    Windows 2000 Operating System
    Oracle7 Release 7.3.2.3.2

    Forms6i running on W2000, Rdbms 8.1.7
    in Forms I added a button TEST,
    Trigger when-button-pressed : host('test.bat') ;
    in directory .......\frm I added file test.bat :
    REM ===============
    cd /d C:\........\ldr
    pause
    sqlldr parfile=test.par
    pause
    type test.log
    pause
    exit
    REM ================
    now, pressing TEST button opens DOS window, telling me what's going on, running sqlldr, finally going back to forms
    Are you using NO_PROMPT or NO_SCREEN option of HOST command ?
    Had a look at Forms 4.5 manuals, there is no mentioning of (a)synchronously operation in connection with HOST command.

  • Calling SQL LOADER From Java Program

    Hi
    I need to invoke sql loader from inside a Java Class.
    Any Pointers in this regards will be really appreciated.
    Thanks
    Vishal

    You can create two different files which has sqlldr command defined....
    1. loader.sh
    2. loader.bat
    and in the depending on the OS execute one...
             String command = "";
             if(System.getProperty("os.name").equals("Windows 2000")){
                    //if os is windows 2000  then execute bat file
                     command =  <<bat file path>>
              }else{
                      command = <<shell path>>
              Runtime rt = Runtime.getRuntime();
              Process p = rt.exec(command);
              int i = p.exitValue();
             

  • Calling SQL Loader from SQL Plus

    Hi everyone,
    I currently use both SQL Loader and SQL Plus to load data and to then carry out certain DML tasks and to reinstate indexes. That all works fine but of course I need to be present to start and to monitor the various scripts.
    What I would really like to do is to be able to incorporate the calls to SQL-Loader into my SQL-Plus scripts and am wondering if this is possible.
    At the moment I run some parts of the load in 'batch' (i.e. command line calls to SQL-Loader and to SQL-Plus) but this won't work for the whole load because the batch calls (from Windows) are not able to wait for particular processes to finish before they start the next. This works OK for the SQL-Loader scripts (because they can run in parallel) but will not work for the whole load because the load needs to be finished before the further processing starts.
    Or maybe there is a way (Windows .BAT files?) to set up batch processes which are intelligent enough to wait for one action to finish before starting the next action.
    Any thoughts or any links to HOWTOs on this would be a great help.
    Regards and thanks,
    Alan Searle

    Hi Alan,
    In SQL*Plus you have the HOST command.
    I would go for the .bat solution using [START /WAIT|http://www.computerhope.com/starthlp.htm]
    Regards
    Peter

  • Error while calling sql loader from shell script.

    In the table DBMS_SCHEDULER_JOB_RUN_DETAILS im getting the error as ""SQL*Loader-128: unable to begin a session ORA-01017: invalid username/password; logon denied""....do we need previliges for creating session of the db user????.....or wht other settings we require to do.....if the username and password used is right.

    user1122577 wrote:
    SQL*Loader-128: unable to begin a session ORA-01017: invalid username/password; logon deniedI don't know, but somehow the error you recived looks like ORA-01017 : )
    [oracle@dell ~]$ sqlplus ring/ring
    SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jul 22 11:50:58 2010
    Copyright (c) 1982, 2007, Oracle.  All Rights Reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, Data Mining and Real Application Testing options
    SQL> exit
    Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
    With the Partitioning, Data Mining and Real Application Testing options
    [oracle@dell ~]$
    [oracle@dell ~]$
    [oracle@dell ~]$ sqlldr ring/ring
    control = i don't have it
    SQL*Loader: Release 10.2.0.4.0 - Production on Thu Jul 22 11:51:08 2010
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    SQL*Loader-500: Unable to open file (i don't have it.ctl)
    SQL*Loader-553: file not found
    SQL*Loader-509: System error: No such file or directory
    [oracle@dell ~]$
    [oracle@dell ~]$
    [oracle@dell ~]$ sqlldr ring/wrongpassword
    control = i don't have it again
    SQL*Loader: Release 10.2.0.4.0 - Production on Thu Jul 22 11:51:38 2010
    Copyright (c) 1982, 2007, Oracle.  All rights reserved.
    SQL*Loader-128: unable to begin a session
    ORA-01017: invalid username/password; logon denied
    [oracle@dell ~]$

  • Calling SQL Loader from ColdFusion Web Server

    We are trying to Load Data files into Oracle through a Cold Fusion Web Application. Users will browse to a local file on their computers, click a button, and our application will use SQL Loader to load the data into oracle. The ColdFusion web server is Unix and the 11g database server is Linux. When we run the ColdFusion code below we get a file not found error, the sqlldr executable cannot be found. Do we need to install an Oracle client or something on the ColdFusion Web server to get this to work?
    <cfexecute name="sqlldr" arguments="ADVDEMO@ADVDEMO/Transact2011 control=/space/users/www/advfiles/ControlFiles/BS/Bio_ControlFile.ctl" timeout="500"></cfexecute>

    'sqlldr' is part of Oracle server or (full) Oracle client software - NOT the OS - so indeed you need to install at least the client. Unfortunately 'sqlldr' is not part of the Instant Client, which is much smaller than the full client.
    Some guys tried to add 'sqlldr' manually:
    http://my.opera.com/onyxluo/blog/2007/12/28/add-sql-loader-into-oracle-10-instant-client
    Werner

  • Call SAP function from VB - Structure member not found " unknown "

    Hello,
    (I don't know if this is the appropriate forum, but I didn't find any which seem to match my topic ...)
    I use the following VB code to call the SAP function ARCHIV_PROCESS_RFCINPUT:
        Dim bapiControl As SAPBAPIControl
        Dim logonControl As SAPLogonControl
        Dim functions As SAPFunctions
        Set bapiControl = New SAPBAPIControl
        Set logonControl = New SAPLogonControl
        Set functions = New SAPFunctions
        Set bapiControl.Connection = logonControl.NewConnection
        ' do login
        Set functions.Connection = bapiControl.Connection
        Dim myFunction As SAPFunctionsOCX.Function
        Set myFunction = functions.Add("ARCHIV_PROCESS_RFCINPUT")
        Dim myStructure As SAPFunctionsOCX.Structure
        Set myStructure = functions.CreateStructure("OARFCIN")
        ' the following values are just examples
        myStructure("ARCHIV_ID") = "01"
        myStructure("ARC_DOC_ID") = "1234567890123457890"
        myStructure("AR_OBJECT") = "TIF"
        myStructure("DOC_TYPE") = "FIIINVOICE"
        myStructure("BARCODE") = "1"
        myFunction.Exports("DOCUMENT_ENTRY") = myStructure
    At this point execution stops with the following error message:
    Err.Number: 1006
    Err.Description: Structure member not found "<unknown>"
    Err.Source: wdtfuncs
    What is wrong? The function ARCHIV_PROCESS_RFCINPUT needs one input parameter called "DOCUMENT_ENTRY" which is of type OARFCIN ...
    ARCHIV_CONNECTION_INSERT, which has only Strings as input parameters (no structures), works fine ...
    I tried all variations I could think of:
    myStructure.Value("ARCHIV_ID") = G_csDefaultRepository
    instead of myStructure("ARCHIV_ID") = G_csDefaultRepository
    declaring bapiControl, logonControl and functions as Object, and instanciating them with CreateObject(...)
    myFunction.Exports(0).Insert "DOCUMENT_ENTRY", myStructure
    instead of myFunction.Exports("DOCUMENT_ENTRY") = myStructure
    (which gave me a "Collection member not found" error) ...
    Nothing worked ...
    What is wrong with this code??
    Thanks for help!
    Regards
    Steffi

    Hi Ralf,
    try substituting following code:
    ' the following values are just examples
    myStructure("ARCHIV_ID") = "01"
    myStructure("ARC_DOC_ID") = "1234567890123457890"
    myStructure("AR_OBJECT") = "TIF"
    myStructure("DOC_TYPE") = "FIIINVOICE"
    myStructure("BARCODE") = "1"
    myFunction.Exports("DOCUMENT_ENTRY") = myStructure
    with that one:
    Set myStructure = myFunction.Exports("DOCUMENT_ENTRY")
    ' the following values are just examples
    myStructure.Fields("ARCHIV_ID") = "01"
    myStructure.Fields("ARC_DOC_ID") = "1234567890123457890"
    myStructure.Fields("AR_OBJECT") = "TIF"
    myStructure.Fields("DOC_TYPE") = "FIIINVOICE"
    myStructure.Fields("BARCODE") = "1"
    Let me know!
    Enjoy!!

Maybe you are looking for

  • Illegal filename

    Hi, I built an user interface to allow free filenames to save data. unfortunately some user enters "/" and ":". those characters are illegal in windows environment. when the program tries to save the file either nothing happens and all datas are gone

  • Add Shopping Cart Number to Purchase Order Data in ERP system

    We would like to be able to send the Shopping Cart number to our ERP system so that it is visible on the Purchase Order details data.  What data / BADI would we have to use to transfer this shopping cart number to our ERP system? Thanks, Jim

  • How to make SELECT ?

    I'd like to select some rows from my table. I try sth like this: music.addActionListener(new ActionListener() {             public void actionPerformed(ActionEvent e) {                 Base baza = new Base("MUZYKA");                 try {            

  • Do I really need to reinstall Windows partition when upgrading to Leopard?

    I've installed Leopard and installed the Leopard drivers in Windows. Now Startup Disk control panel does not show the Windows boot option. I can use it by holding down the Option key at boot time or by running BootChamp. Windows works fine. I ran the

  • Re-installing aperture

    quick question... if i delete the aperture program on my mac pro, will the aperture library of pictures be deleted as well? i plan on re-installing. of course all my pictures are already backed up but it would save me a ton of time re-uploading them.