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. -
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!
mpleafIt'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
muralihI
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. -
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> -
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,
SriHi,
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
MikeIt'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 fileThis 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
-
Contact Person for Vendor in SRM/CUA
Hello SRM Expert, We are using Central user administration (CUA and like other system SRM is connected to CUA. I am getting the error 'Central system not accessible' while creating the employee (manage business partner) for business partner (Vendor).
-
Safari 6.0.1 Truncates URLs in Non Full Screen Mode
I just applied the Java removal patch that Apple released and I noticed that all URLs now get truncated to subdomain.domain.extension. For example, if I go to store.apple.com/us my URL bar only shows store.apple.com. If I go to full screen mode it sh
-
Uncompressed 23.976 progressive avi and Encore encoding looks like crap!
Since i'm getting an "internal software error" when I try to burn a DVD from an m2v/wav I export out of After Effects; i've now exported an uncompressed AVI so I can let Encore encode to hopefully fix this problem. So this 1.54gb AVI is 720x480, 16:9
-
Help - the latest version of firefox 12 will not open or view pdfs?
Help - I upgraded to latest version of Firefox 12 2 days ago and will not open pdfs or view.. worked fine before?
-
How do I remove previous addresses in Mail on an iPhone?
I want to do this, but on an iPhone... http://discussions.apple.com/thread.jspa?threadID=1374520 How do I do it?