Executable-Job to call batch-file

Dear NG!
I'm currently using Oracle 10.1.0.4 on a MS Windows Server 2003 and
I've got some problems concerning EXECUTABLE-Jobs in DBMS_SCHEDULER.
I just want to PIPE OUT the results of my Batch-Execution in a LOG-File,
but ORACLE just returns an error code.
Here's my example:
the Batch-File "TEST.bat" contains:
dir c:\temp >c:\temp\content.log
the SCHEDULER-Job to run in PL/SQL:
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
JOB_NAME =>'TEST1',
JOB_TYPE =>'executable',
JOB_ACTION =>'c:\temp\TEST.bat',
ENABLED => TRUE,
AUTO_DROP => TRUE
COMMIT;
DBMS_SCHEDULER.RUN_JOB('TEST1');
END;
the LOG-Message:
ORA-27369: Job vom Typ EXECUTABLE nicht erfolgreich mit Exit-Code: Unzul¿ige Funktion.
I also tried the following JOB_ACTION-Parameter:
- 'c:\windows\system32\cmd.exe /q /c c:\temp\TEST.bat'
or
- 'c:\windows\system32\cmd.exe /q /c c:\temp\TEST.bat >Nul'
or
- 'dir c:\temp >c:\temp\content.log'
or
- 'c:\windows\system32\cmd.exe /c /q dir c:\temp >c:\temp\content.log'
...but I had no success.
I already read the posts in the forums about that but I did not found any solution.
Could someone please tell me where my mistake is?
A rapid response would be appreciated!
Thanks in advance!
Dirk

You may be hitting bug 3663347 - WIN32/SCHEDULER: EXECUTABLE JOB FAILS WITH 'ORA-27369: THE HANDLE IS INVALID', which should be fixed by Patch 4287619.

Similar Messages

  • Calling batch file from java Program

    I have made the java program in which i have called the batch file.But the problem is this that when i call batch file locally it executes normally but when i try to execute batcvh file from remote machine it doesn't runrather it gives Runtime IO execption.Error123.Can anyone provide me the solution for this?

    Not without a lot more information. Like for example how you are trying to execute this remote batch file, the code you are using to do that, what kind of server you have no the remote machine to let you remotely execute code, and so on.

  • Question about calling batch file by using the System Exec+.vi?

    Hi
    I have a problem about calling batch file. I know that the system exec is equivalent to "run" in Windows. I called the batch file c:\rtxdos\bs\ch0.bat successfully in the "run" but it didn't work in the LabVIEW program. The dos prompt had an error message "Bad command or file name" and it just happen when I call this batch file in LabVIEW. Why?
    Bill.

    Hi,
    Try to set the "working directory" parameter of System exec.vi to the directory where the batch file is located. It may help.
    Good luck.
    Oleg Chutko.

  • Calling Batch files in PLSQL Procedure

    Hi all,
    I am working on a PLSQL procedure and having issues when I am trying to call a batch file.
    Issue:-
    I have a procedure which have to kick off a batch file. And that batch file needs to run in Windows not in Unix box. 
    Can someone please help me out in providing some samples or anything?
    Thanks a lot in advance.

    Thank you rp0428 and sb92075,
    I have tried to create a sample of what I am trying to get and so I have created the following code in a batch file and named as Check.bat:-
    @set a=3
    @set b=4
    @set /a c=%a%+%b%
    echo %c%
    So based on those links you guys provided I have created an
    Scheduler Job:-
    BEGIN
    DBMS_SCHEDULER.create_job (job_name        => 'MYJOB1',
                               job_type        => 'EXECUTABLE', JOB_ACTION      => 'c:\Check.bat', enabled         => TRUE,comments        => 'runs Check.bat' );
    END;
    And the following Procedure :-
    CREATE OR REPLACE PROCEDURE execute_bat_file
    IS
    BEGIN
       DBMS_SCHEDULER.RUN_JOB ('MYJOB1', TRUE);
    END execute_bat_file;
    And used the following exec command:-
    exec execute_bat_file;
    I am getting the following error:-
    Error starting at line 1 in command:
    exec execute_bat_file
    Error report:
    ORA-27475: "ACTUATE.MYJOB1" must be a job
    ORA-06512: at "SYS.DBMS_ISCHED", line 150
    ORA-06512: at "SYS.DBMS_SCHEDULER", line 441
    ORA-06512: at "ACTUATE.EXECUTE_BAT_FILE", line 4
    ORA-06512: at line 1
    27475. 00000 -  "\"%s.%s\" must be a %s"
    *Cause:    An object of the wrong type was specified. For example, a table
               could have been passed to the drop_job() procedure.
    *Action:   Reissue a different command applicable to this object type or
               reissue the same command using an object of the valid type.
    Can you guys please help with this?
    Thank you once again

  • Calling batch file using dbms_scheduler

    Hello,
    i have created a schedule, program and a Job to using the DBMS_SCHEDULER. creates all those fine but when i try to run i get errors.
    here is the code:
    begin
    dbms_scheduler.create_schedule(
    schedule_name => 'dailyjob',
    repeat_interval => 'FREQ=DAILY; INTERVAL=1;
    BYDAY=TUE; BYHOUR=4',
    comments => 'schedule to run daily');
    dbms_scheduler.create_program
    ( program_name => 'runord',
    program_type => 'EXECUTABLE',
    program_action => 'd:\oracle\product\admin\scripts\ord.bat >nul',
    enabled => TRUE,
    comments => 'ORDERS.'
    dbms_scheduler.create_job (
    job_name=>'TEST',
    program_name =>'runord',
    schedule_name=> 'DAILYjob',
    enabled => true,
    comments => 'TESTING the Orders Job.'
    end;
    exec dbms_scherduler.run_job('TEST');
    gives me the errors.
    in the batch file i am calling connecting to the database and calling the sql file. is there any way that i can connect to the database directly from scheduler itself? i dont like to save username and passwords in a file to connect and invoke sqlplus?
    could any one help.....

    Pass them to the external command line as parameters? That exposes the name and password even more.
    We use a tightly controlled directory with this information in it and access to the directory is controlled. The scripts are also in a controlled directory and have read privileges where the credentials are stored.
    That way the scripts don't have the data exposed and don't use it until they run.

  • Powershell script calling batch file, how to "echo" or otherwise pass in two or more values asked for by batch file

    I've been having a lot of problems trying to get an old batch file we have laying around, to run from my powershell script. The batch file actually asks for two inputs from the user. I've managed to put together a powershell that echos a response, but of
    course, that only will answer one of the prompts. As usual, I've simplified things here to get my testing done. The batch file looks like this:
    @ECHO OFF
    SET /P CUSTID=Customer Number:
    SET /P DBCOUNT=Number of Live Databases:
    ECHO Customer Id was set to : %CUSTID%
    ECHO Database Count was set to : %DBCOUNT%
    Two inputs, two echos to verify values have been set. Now, the powershell looks like this:
    Param(
     [string]$ClientADG,
        [string]$ClientDBCount,
        [scriptblock]$Command
    $ClientADG = '1013'
    $ClientDBCount = '2'
    $Response = $ClientADG + "`r`n" + $ClientDBCount
    $Command = 'Invoke-Command -ComputerName localhost -ScriptBlock {cmd /c "echo ' + $ClientADG + ' | E:\Scripts\Setup\Company\DatabaseSetupTest.bat"}'
    powershell -command $Command
    Output looks like:
    Customer Number: Number of Live Databases: Customer Id was set to : 1013
    Database Count was set to :
    As expected, as I'm only passing in one value. I can't figure out how to get a second value passed in for the second prompt. Instead of $ClientADG, I tried to mash the two value together in the $Response variable with a cr/lf or a cr or a lf in between,
    but no go there either. The first input gets set to the second value, and second input is blank still. In the essence of time, I need to get this batch file called from Powershell to get some folks productive while I actually rewrite what the batch file does
    in another powershell, so it can be integrated into other things. (I'm automating what a bunch of people spend hours doing into multiple scripts and eventually one BIG script so they can focus on doing their real jobs instead).
    How do I get this right in powershell? I don't want to modify the batch file at all at this point, just get it running from the powershell.
    Thanks in advance!
    mpleaf

    It's a "simple" test so I can figure out how to get the arguments passed from ps to bat. The bat file looks like this:
    @ECHO OFF
    SET CUSTID = %1
    SET DBCOUNT = %2
    ECHO Customer Id was set to : %CUSTID%
    ECHO Database Count was set to : %DBCOUNT%
    That's it. The PS script looks like this:
    Invoke-Command-ComputerName myserver-ScriptBlock{cmd/c"E:\Scripts\Setup\Company\DatabaseSetupTest.bat
    1013 2"}
    That's it. The bat file exists on "myserver", and I'm getting the echo back, but without the values.
    mpleaf

  • Executing sqlplus in windows batch file - URGENT

    Hi
    Is it possible to run sqlplus.exe thru batch file as follows.
    set PATH=%PATH%;C:\oracle\product\10.2.0\client_1\BIN;
    host sqlplus userid=test1/test12@testdev
    sELECT * FROM CASESTATUS
    Thanks
    murali

    hI
    It did not work. I have this question.
    1. Do I have to run this opening SQL/PLUS and then submit
    @C:\Test\SQL2.bat
    2. Or from Windows command run SQL2.Bat
    I tried both of them , it did not work. If I try from windows , I am getting SQLPlus connection window at all.
    Please help me.
    Murali
    set PATH=%PATH%;C:\oracle\product\10.2.0\client_1\BIN;
    sqlplus userid=test1/test12@testdev
    Ok so far but your select needs to be in a file if you want this to be executed.
    Put this in, f.ex, run.sql
    >>
    sELECT * FROM CASESTATUS
    >>
    then you can use
    sqlplus userid=test1/test12@testdev @run.sql <complete path if needed>

  • Call Batch file from MAxl Script

    Is it possible to call a windows batch file from a maxl script

    If you look at the documentaion you will see there is a shell command available

  • Call batch file from Servlet.

    Hi all,
    can anybody tell me how to call or run batch file
    from Servlet.
    Please do hurry.

    class RuntimeClass
    public static void main(String str[]){
    Runtime JVM = Runtime.getRuntime();
              try
                   JVM.exec("abc.bat");
              catch(Exception e)
                   System.out.println("hello");
    Hi,
    i hope the above program will help.

  • Call batch file using IBOT

    Hi ,
    We are using OBIEE 10G
    and I need to transfer folder from one machine to another machine(both are windows) so I have written a dos command (batch file). Now I need to call this batch file from IBOT ,how I can do this. any suggestion pls.

    Hi ,
    U can use a javascript to call the batch file and attach the script to your IBOT :
    For example :
    <html><head><script type="text/javascript">function runApp(st) {  WshShell = new ActiveXObject("WScript.Shell");  WshShell.Run (st,1,false);}</script></head><body><!-- Two ways to create a link to run the app. --><font onClick="runApp('file://c:/winnt/notepad.exe');" style="cursor: hand;"><u>Notepad</u></font><br><!-- Or use <a> descriptor -->Batch File</body></html>

  • Call Batch file

    I have an JMS Subscriber that I'd like to have respond to a request by publishing to a different topic - I've setup batch files for the proof of concept - HOW DO I CALL A BATCH FILE from a java class ?

    Like this:
    import java.io.*;
    public class RunProcess {
      public static void main(String[] arg) {
        try {
          Process myProcess;
          myProcess = Runtime.getRuntime().exec("cmd /c mybatch.bat");
          String s = null;
          DataInputStream in = new DataInputStream(
                               new BufferedInputStream(
                                   myProcess.getInputStream()));
          while ((s = in.readLine()) != null) {
            System.out.println(s);
          System.exit(0);
        catch (IOException e) {
          System.out.println("Exception: "+ e);
          System.exit(-1);
    }The InputStream/read is to display command o/p. Not absolutely necessary.
    ~Bill

  • Input to an executable jar from a batch file

    Hi, I have created an executable jar program to receive the input during runtime from a batch file. I have tried to run the program by passing arguments at runtime but the code doesn't seem to execute. Can anyone help me out to pass an argument to the java program using the batch file. The flow of my project is -> The batch file triggers the executable jar file (I am able to execute till this !) -> The input to the executable jar file should be fetched from the arguments given in the batch file which will be taken as the input for the java program.

    My java code prompts the user to enter the data but the batch file when executed executes the code but does not wait for the user input. This is the message my batch file displays when executed.
    C:\Users\Administrator\Downloads\BatchTool>java -Xms512M -Xmx512M -jar Program.jar -o true
    Enter custom directory :
    C:\Users\Administrator\Downloads\BatchTool>PAUSE
    Press any key to continue . . .
    If I press any key the program exits
    Is there an option to give the input via batch code ? My doubt is not in the java code. Its the batch file which triggers the code and i want the batch command which will trigger the input to the code being executed.
    Is there a way to give the input to this batch file ?
    C:\Users\Administrator\Downloads\BatchTool>java -Xms512M -Xmx512M -jar Program.jar -o true * Can i replace this code with an input for the java code ? *
    Edited by: Raja Pandian C on Dec 21, 2012 2:26 PM
    Edited by: Raja Pandian C on Dec 21, 2012 2:27 PM

  • Execute stored procedure from batch file

    Hi,
    can someone helpme hoe to run my stored procedure from a bacth file. I need it urgently. Can some one help
    Thanks,
    Sri

    Hi,
    You can perform the below step..
    1) Create .sql file and write the line as shown below there....
    exec your_procedure_name
    2) create .bat file containing authentication
    sqlplus username/password@databasename @.sqlfilename
    suppose i have a procedure called test then and my database name is oracle and user name is scott then i will create a file like
    .sql file.. and sql file name is proc.sql
    exec test {(parameter if any)};
    .bat file
    sqlplus scott/tiger@oracle @procIf you have any issue past here..

  • Cannot call 2 batch files .. executes only one batch and the program exists

    Hello,
    I am trying to call 2 batch files from the program . due to some reason only first batch file is called and second one is not called . any idea why it is happening.
    import java.util.Properties;
    import javax.mail.*;
    import javax.mail.internet.*;
    import java.io.*;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStreamReader;
    public class MyBatchFiles {
          public static void main (String args[]) throws Exception {
        StringBuffer output  = new StringBuffer();
        StringBuffer error = new StringBuffer();
        try {
                   //call batch files
                   Process Process=Runtime.getRuntime().exec("cmd /c start F:\\batch1.bat"); // Batch File Path
                       Process.waitFor();
                      BufferedReader inputStreamReader  = new BufferedReader(new InputStreamReader(cubeBuildProcess.getInputStream()));
                   BufferedReader errStreamReader  = new BufferedReader(new InputStreamReader(cubeBuildProcess.getErrorStream()));
                   output = new StringBuffer();
                   error = new StringBuffer();
                   for(String ProcessLine;(ProcessLine=inputStreamReader.readLine())!=null;)
                             output.append(ProcessLine);
                   for(String ProcessLine;(ProcessLine=errStreamReader.readLine())!=null;)
                             error.append(ProcessLine);
                   System.out.println("transformer output = " + output);
                   System.out.println("transformer error = " + error);
                   if (error!=null){
                             //calling batch2
                             Process Process2=Runtime.getRuntime().exec("cmd /c start F:\\batch2.bat"); // Batch File Path
                             Process2.waitFor();
                             BufferedReader Process_inputStreamReader  = new BufferedReader(new InputStreamReader(Process2.getInputStream()));
                             BufferedReader Process_errStreamReader  = new BufferedReader(new InputStreamReader(Process2.getErrorStream()));
                             for(String ProcessLine1;(ProcessLine1=Process_inputStreamReader.readLine())!=null;)
                                       output.append(ProcessLine1);
                             for(String ProcessLine1;(ProcessLine1=Process_errStreamReader.readLine())!=null;)
                                       error.append(cubeCopyProcessLine);
           }catch(Exception e) {
                  e.printStackTrace();
    }Thanks
    Mike

    It's your if statement. Why do you think it could be happening?

  • .bat or .sh file for executing jobs in data services

    are there any command line utilities where i can import the .atl files and executes the jobs in data services
    i was able to import the .atl files using 'al_engine' but not able to find the arguments to execute the jobs.
    Here is my requiremen:
    There would be 2 master scripts :
    Master_Initial_Script.bat/.sh - This would have all the pre/post checks and would call the DS Initial Job
    Master_Delta_Script.bat/.sh - This would have all the pre/post checks and would call the DS Delta Job
    Pre-Checks for Delta Job -
    If the initial job is not loaded then
                    Do not move further to execute the Delta job
    else
                    Execute the Delta job
    Post Checks for Delta Job:
    Print the statement when the job starts successfully,
    Checks the error/return code and prints Job success message in a log file

    This looks more like scheduling the job with dependency.
    Unfortunately, BODS scheduler doesnt support setting depedencies for running the jobs.
    So, the best way to go forward is export the jobs to a batch files in a particular location.
    Use the batch files with a external scheduling tool and set the dependency.
    A scheduling tool such as Control M or Redwood chronacle scheduler should be able to execute the batch files.
    Set the dependency in the scheduling tool accordingly.
    Let me know if you need any more details.
    Regards,
    Kishore Reddy L.

Maybe you are looking for