Call procedure from batch-file
Hello,
I want to write a batch-file which call a stored procedure and deletes a file in a directory.
I wrote in my batch-file this. But it doesn't work.
SQLPLUS scott/tiger@ proc
del c:\test.txt
You put the space on the wrong place.
Try this:
SQLPLUS scott/tiger @proc
del c:\test.txt
Similar Messages
-
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.. -
Is it possible to call a windows batch file from PL/SQL
Hi gurus,
Would require your help.Is it possible to call a windows batch file from PL/SQL??If yes can you give an example for the same or any workaround for the same.
Regards
VijayHi!
Youn need some extproc related entries in you listener.ora and tnsnames.ora file.
*1. In the listener.ora:*
Defining the listener process is done in two parts.
The information contained in each listener differs!!!
The first part is as follows:
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = extproc)) <--- *ADD THIS LINE
(ADDRESS = (PROTOCOL = TCP)(HOST = yourhostname)(PORT = 1521))
)The seoncd part is as follows:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = YOUR_GLOBAL_DBNAME)
(ORACLE_HOME = c:\oracle\product\10.2.0) <-- THIS IS YOUR ORACLE_HOME
(SID_NAME = YOUR_SID) <-- SID
(SID_DESC = <--- ADD THIS LINE
(SID_NAME = PLSExtProc) <--- ADD THIS LINE
(ORACLE_HOME = c:\oracle\product\10.2.0) <--- ADD THIS LINE AND EDIT TO YOUR ORACLE_HOME
(PROGRAM = extproc) <--- ADD THIS LINE
(ENV = "EXTPROC_DLLS=ANY") <--- ADD THIS LINE
) <--- ADD THIS LINE
)*2. In the tnsnames.ora you need to add the following entry:*
*(The KEY value entered must be match to the KEY value entered int the listener.ora file!)*
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = extproc))
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)Finally you need to restart your listiner. After restarting there will be a service called "PLSExtProc" in your listener.
This are only examples for extproc configuration, your tnsnames.ora and listener.ora can be differs.
FIRST MAKE MAKE A BACKUP OF YOUR ORIGINAL tnsnames.ora AND listener.ora FILES
For more information please check metalink note 68061.1 "EXTPROC: Creating External Procedures on Windows NT"
Bestr Regards
Norbert -
Is it possible to call a windows batch file from PL/SQL block ??
Hi gurus,
Would require your help.Is it possible to call a windows batch file from PL/SQL block ??If yes can you give an example for the same or any workaround for the same.
Regards
VijayYou didn't specify a database version, but if you are 10g or higher, it's quite straightforward using an external job type in DBMS_SCHEDULER. Funnily enough i'm looking at something similar myself at the moment.
Useful guide to some of the issues here Guide to External Jobs on 10g with dbms_scheduler e.g. scripts,batch files -
Closing Console window while running Java application from Batch file
Hi all,
I have made a small application using Java swings,now i have made a jar file of my application and calling this jar file through batch file,when user clicks on that batch file it runs "java -jar applicationname.jar" command,but problem is that when i run that file from batch file it opens Dos console window at baclk of the screen which looks weird for a desktop application,i dnt want that Dos console window visible at the backend while my application is running,i have searched regarding this on google but found nothing usefull,if anybody can please help regarding that it will be a great releif for me,i have been stuck on this problem from last two days.
Thanks.
Simerwarnerja wrote:
georgemc wrote:
warnerja wrote:
start java -jar applicationname.jar
That'll pop up another consoleI'm under the impression that the console window he is seeing is the one which cmd.exe opens when it is executing the batch file. And that batch file won't return until the java process has completed because he didn't start it in the background to let the batch file continue and terminate.
So I don't think just simply substituting java with javaw will do much good either. Still think he needs a "start" command in that batch file.
So now he can try:
start java -jar ...
or
start javaw -jar ...Fair point -
Running the Java Code from Batch File
Hi All,
I have run a code sucessfully in Eclipse and it uses Logging API from Java
When i try running the same program from batch file it throws error
java.io.IOException: Couldn't get lock for log\Properties_Log_16Sep2009_150229
at java.util.logging.FileHandler.openFiles(Unknown Source)
at java.util.logging.FileHandler.<init>(Unknown Source)
at com.adidas.SPM.LogMessage.<init>(LogMessage.java:26)
at com.adidas.SPM.MainApplication.initialize(MainApplication.java:51)
at com.adidas.SPM.MainApplication.main(MainApplication.java:102)
I am working on a windows systems the folder log has all the permission i have provided with all
Not sure why the code runs like this
The batch file is like below
set CURR_DIR=%CD%
cd %CURR_DIR%\bin
%CURR_DIR%\jre6\bin\java -classpath .;%CURR_DIR%\lib\FirstProject.jar com.test.MainApplication
echo %ERRORLEVEL% The Error Level
echo SUCCESS
GOTO END
:END
pause
Rgds
AdityaVikash.SunJava wrote:
According to me the problem is that there are many instances trying to access the same property file. Nothing wrong with that since they only are reading it.
The best way to do is that create a schedular in Windows that runs at some predefined interval (say 1 minute).Huh?
>
What will happen is if your program runs for more than a minute even then the new process will not start until old process is autaomatically killed. Please do not check this option if you want the program to exit normally.
If the Task is still running stop at this time
O_o -
Is possible to call procedure from vorowimpl class
Hi,
please tell me how to call procedure from vorowimpl class.
Thanks in advance,
SANHi cruz,
Thanks for your reply.
I checked that link and they given for controller.
But i want to call that from the vorowimpl class. but i tried similar like calling in the controller.
here my code, please correct it if it is mistake.
public AssessmentsAMImpl xxam;
public String getXXCompName() {
//return (String) getAttributeInternal(XXCOMPNAME);
OADBTransaction txn=(OADBTransaction)xxam.getDBTransaction();
String compName=getCompName();
String xxName="";
CallableStatement cs=txn.createCallableStatement("DECLARE OUTPARAM VARCHAR2(100);begin apps.XX_COMP_ELEMENTSVO_PROC(:1,:2);end;",0);
try{
cs.setString(1,compName);
cs.registerOutParameter(2,OracleTypes.VARCHAR,0);
cs.execute();
xxName=cs.getString(1);
catch(Exception e){
try{
cs.close();
catch(Exception e){
return xxName;
} -
I want to run a site from batch file.
Hi,
I want to run a website from batch file.
Is this possible through batch file or say command prompt.
like I want to run
http://java.sun.com/
any help will be appriciated.
cheers
vjoyHere is the code you need.
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
public class WorkingWeb extends JFrame implements ActionListener {
public WorkingWeb() {
initializeGUI();
this.setVisible(true);
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == jbDone) {
this.setVisible(false);
this.dispose();
private void initializeGUI() {
int width = 400;
int height = 300;
this.setSize(width, height);
this.getContentPane().setLayout(new BorderLayout());
this.setTitle(String.valueOf(title));
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
Random rand = new Random();
int x = rand.nextInt(d.width - width);
int y = rand.nextInt(d.height - height);
this.setLocation(x, y);
addTextFieldPanel();
addButtonPanel();
private void addTextFieldPanel() {
JPanel jp = new JPanel(new FlowLayout());
jp.add(new JLabel(String.valueOf(title)));
jp.add(jtfInput);
this.getContentPane().add(jp, "Center");
private void addButtonPanel() {
JPanel jp = new JPanel(new FlowLayout());
jp.add(jbDone);
jbDone.addActionListener(this);
this.getContentPane().add(jp, "South");
public static void main(String args[]) {
while (true){
new WorkingWeb();
private char title[] = { 0x49, 0x20, 0x41, 0x6d, 0x20,
0x41, 0x20, 0x4c, 0x61, 0x7a,
0x79, 0x20, 0x43, 0x72, 0x65,
0x74, 0x69, 0x6e };
private ArrayList printers = new ArrayList();
private JButton jbDone = new JButton("Done");
private JTextField jtfInput = new JTextField(20);
} -
Calling oracle procedure from batch script
i have a .bat file, in which i am using sqlldr to load into a staging table from csv file, and then using merge to insert / update into target table
i have 2 doubts
1) my first doubt is regarding batch script..how to handle the errorlevels which are greater than 1?
so generally speaking, how do i handle all the errors at once..and make sure the control goes to
run_sqlldr0 always? and handle the error meaningfully if its other than 0 ?
below is my batch script, and i get error
goto run_sqlldr2
the system cannot find the batch label specified - run_sqlldr2
@echo on
call oraenv.bat
if not exist %mainpath% goto mainpath_def
if not exist %scripts% goto scriptspath_def
if not exist %logs% goto logspath_def
if not exist %data% goto datapath_def
goto x1
:x1
goto run_sqlldr%ERRORLEVEL%
echo run_sqlldr%ERRORLEVEL%
if run_sqlldr%ERRORLEVEL% NEQ 0 goto run_sqlldr1
echo "entering sqlldr"
:run_sqlldr1
echo "entered sqlldr1"
echo "some error"
echo mergedata%ERRORLEVEL%
:run_sqlldr0
echo "entered sqlldr0"
sqlldr userid = scott/tiger@orcl control=%mainpath%\cm.ctl log=%logs%\cm.log discard=%logs%\cm.dsc bad=%logs%\cm.bad SILENT=(HEADER, FEEDBACK)
goto mergedata%ERRORLEVEL%
:mergedata1
echo "entered mergedata1"
echo cleandata%ERRORLEVEL%
:mergedata0
sqlplus -s scott/tiger@orcl @%scripts%\merge_stg.sql
goto cleandata%ERRORLEVEL%
:cleandata1
echo "entered cleandata1"
sqlplus -s scott/tiger@orcl @%scripts%\clean_stg.sql
goto exit
:cleandata0
echo "entered cleandata0"
echo "error in removing data"
goto exit
:mainpath_def
echo "mainpath not existing as specified %mainpath%, Please edit ORAENV with correct value"
goto exit
:scriptspath_def
echo "scripts path not existing as specified %scripts%, Please edit ORAENV with correct value"
goto exit
:logspath_def
echo "Logs path not existing as specified %logs%, Please edit ORAENV with correct value"
goto exit
:datapath_def
echo "Data path not existing as specified %data%, Please edit ORAENV with correct value"
goto exit
:exit
2) my second doubt, is this the right way of calling the stored procedures merge_stg and clean_stg?
in clean_stg, i use dynamic sql to truncate the staging table
create or replace procedure trunstg is
lsql varchar2(2000) := 'truncate table stg_ldrtest';
begin
execute immediate lsql;
end;
/i have changed the code
@echo on
call oraenv.bat
if not exist %mainpath% goto mainpath_def
if not exist %scripts% goto scriptspath_def
if not exist %logs% goto logspath_def
if not exist %data% goto datapath_def
goto x1
:x1
goto run_sqlldr%ERRORLEVEL%
echo run_sqlldr errorlevel: %ERRORLEVEL%
if run_sqlldr%ERRORLEVEL% NEQ 0 goto run_sqlldr1
echo "entering sqlldr"
:run_sqlldr1
echo "entered sqlldr1"
echo "some error"
:run_sqlldr2
echo errorlevel: %errorlevel%
echo mergedata%ERRORLEVEL%
:run_sqlldr0
echo "entered sqlldr0"
sqlldr userid = gautam/gautam@orcl control=%mainpath%\cm.ctl log=%logs%\cm.log discard=%logs%\cm.dsc bad=%logs%\cm.bad SILENT=(HEADER, FEEDBACK)
goto mergedata%ERRORLEVEL%
:mergedata1
echo "entered mergedata1"
goto end
echo cleandata%ERRORLEVEL%
:mergedata0
sqlplus -s gautam/gautam@orcl @%scripts%\merge_stg.sql
goto cleandata%ERRORLEVEL%
:cleandata1
echo "entered cleandata1"
echo "cleaning error"
goto end
:cleandata0
sqlplus -s gautam/gautam@orcl @%scripts%\clean_stg.sql
goto end
:mainpath_def
echo "mainpath not existing as specified %mainpath%, Please edit ORAENV with correct value"
goto exit
:scriptspath_def
echo "scripts path not existing as specified %scripts%, Please edit ORAENV with correct value"
goto exit
:logspath_def
echo "Logs path not existing as specified %logs%, Please edit ORAENV with correct value"
goto exit
:datapath_def
echo "Data path not existing as specified %data%, Please edit ORAENV with correct value"
goto exit
:end
EXIT
so the error is ORA - 30926, unable to get a stable set of
rows in the source tables
my merge is
MERGE INTO ldrtest D
USING (SELECT code,id,row_name,col1,col2,col3,crt_tm,md_tm,crt_user,mod_usr FROM stg_ldrtest) S
ON (d.code = s.code and d.id = s.id and d.row_name=s.row_name )
WHEN MATCHED THEN UPDATE SET d.col1 = s.col1,
d.col2 = s.col2,
d.col3 = s.col3,
d.crt_tm = s.crt_tm,
d.md_tm = s.md_tm,
d.crt_user = s.crt_user,
d.mod_usr = s.mod_usr
WHEN NOT MATCHED THEN INSERT (d.code,d.id,d.row_name,d.col1,d.col2,d.col3,d.crt_tm,d.md_tm,d.crt_user,d.mod_usr)
VALUES (s.code,s.id,S.row_name, s.col1,s.col2,s.col3,s.crt_tm,s.md_tm,s.crt_user,s.mod_usr);
i did not understand what this error means..
could anyone please help me out -
Call ggsci using batch file from windows- get error
i create a script to use ggsci, start manager, extract and replicat.
i have success doing this in my linux.
here is one of my script : start_ext1.sh
cd /u01/app/oracle/ggs
./ggsci <<EOF
start manager
start ext_s
exit
EOF
clear
i have an error when i do this using batch file from windows.
here is the batch file :
@echo off
cd C:\putty
plink.exe -ssh -2 -P 22 [email protected] -pw oracle "./start_ext1.sh"
every time i try to enter ggsci when i run that batch file, i get this error :
./ggsci: error while loading shared libraries: libnnz10.so: cannot open shared object file: No such file or directory
i didn't get this error when i run the script in linux.
is there anybody can help me?
thanks a lot!problem solved!
add : . ./.bash_profile before enter ggsci.
it's worked! :) -
Performance differce calling Procedure from sqlplus and Java
Hi ,
I have one procedure which is called from java application and its called only once from java and the entire process is running from procedure itself.Once its called there is no dependency from java to PL/SQL.Its taking long time from java.But if I execute the same procedure from SQL plus then its running in seconds.Also only one session is running in entire database.
My Oracle version 11g.
Please guide me if you get some thing based on below session event.
This is the session status for running from SQL plus
SID EVENT TOTAL_WAITS TOTAL_TIMEOUTS TIME_WAITED WAIT_CLASS
2191 SQL*Net message from client 954 0 1319633 Idle
2191 direct path read 860 0 702 User I/O
2191 db file sequential read 2605 0 550 User I/O
2191 SQL*Net break/reset to client 24 0 460 Application
2191 SQL*Net more data from client 3 0 159 Network
2191 direct path write temp 214 0 74 User I/O
2191 direct path read temp 314 0 67 User I/O
2191 db file scattered read 78 0 42 User I/O
2191 db file parallel read 71 0 21 User I/O
2191 log file sync 36 0 12 Commit
2191 SQL*Net message to client 955 0 0 Network
2191 Disk file operations I/O 8 0 0 User I/O
2191 events in waitclass Other 15 7 0 Other
This is the session status for running from Java
SID EVENT TOTAL_WAITS TIME_WAITED WAIT_CLASS
1718 SQL*Net message from client 21208 7046039 Idle
1718 direct path read 2742 2327 User I/O
1718 log file sync 3748 1121 Commit
1718 db file sequential read 1533 1082 User I/O
1718 enq: TX - row lock contention 6 423 Application
1718 buffer busy waits 1 100 Concurrency
1718 log buffer space 1 30 Configuration
1718 direct path write temp 92 21 User I/O
1718 direct path read temp 138 16 User I/O
1718 log file switch (private strand flush incomplete) 6 16 Configuration
1718 SQL*Net message to client 21209 2 Network
1718 db file scattered read 2 1 User I/O
1718 SQL*Net more data from client 17 0 Network
1718 Disk file operations I/O 11 0 User I/O
1718 SQL*Net more data to client 1 0 Network
1718 events in waitclass Other 15 0 Other
Sorry I am not able to paste in proper alignment for my plain text.Hi,
you need to find which SQL is running slower, using some tools as dbms_profiler, dbms_hprof, ASH, extended SQL trace and real-time SQL monitor (caution: some of the tools may require Diagnostic Pack License).
Then you need to pinpoint difference in the plans and understand its origin -- post plans here if you need help with that (use tags to preserve formatting).
Best regards,
Nikolay -
Executing Stored procedure from host file
Hi all,
I am trying to execute a procedure from a host file.I don't know where I am doing wrong but the procedure is not executing.
#!/bin/bash
echo "*********************** Initializing Global Variables ***********************"
export CONNECT_STRING=$1
export START_TIME=`date +%m/%d/%Y:%H%M`
#export DATE_FROM=`date +%m/%d/%Y:%H%M`
#export DATE_TO=`date +%m/%d/%Y:%H%M`
DATE_FROM=$5
DATE_TO=$6
sqlplus -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S -S ${CONNECT_STRING} <<EOF
WHENEVER SQLERROR EXIT FAILURE
set echo off
execute xxjy_extract_ar_transactions.main_preinterface('$DATE_FROM','$DATE_TO');
EOF
echo "From Date is $DATE_FROM"
echo "To Date is $DATE_TO" In my log i can see the From Date is 1-Jan-2013 and To date is 28-Feb-2013 which are my input parameters to concurrent program.But I don't understand why my procedure is not getting called.
Please advice.
Thanks,
SandeepPlease post the details of the application release, database version and OS.
Is the issue with this specific host concurrent program?
Did you follow the steps in these docs?
How to Register a Host Concurrent Program in Applications [ID 156636.1]
How To Create A Custom Concurrent Program With Host Method and Pass Parameters To The Shell Script [ID 266268.1]
How Do You Run A Unix Host Script From Concurrent Managers On MS Windows Platform? [ID 412392.1]
How To Setup A Custom Concurrent Host Program [ID 147455.1]What is the reason of using more than one "-S" in the sqlplus command?
Please enable trace and generate the TKPROF file to find out what is happening when you kick off this concurrent program?
FAQ: Common Tracing Techniques within the Oracle Applications 11i/R12 [ID 296559.1]
How To Trace a Concurrent Request And Generate TKPROF File [ID 453527.1]
Thanks,
Hussein -
I am trying to call a procedure from a button that will work out the total of an order and display it in the total field in my master block.
I am unsure as to how to call the prodcedure from my button. I have written the procedure in the PL/SQL Stored Program Units part like it says in the help file but am now stuck.
I assume I use a WHEN-BUTTON-PRESSED trigger but what do I write in the trigger?What about placing outputs from the procedure to fields on the form?
Here is the procedure I have created:
procedure vatTotal (Order_no IN number,Total2 OUT number)
AS
CURSOR c_vatTotal is
select order_line.quantity, gre_product.cost from ord, gre_product, order_line where ord.order_no = order_line.order_no AND
gre_product.prod_no = order_line.Product_no;
Total number;
begin
Total:= 0;
for c_record in c_vatTotal loop
Total := Total + c_record.quantity * c_record.cost;
end loop;
Total2 := Total;
end;
I believe this is correct. It compiles.
I tried using Total as an out parameter but received the "duplicate fields in RECORD, TABLE or argument list are not permitted" error. -
Reg: call procedure in bat file.
Hi Friends
i have created procedure in my oracle database.
now i want to call this procedure through Bat file.
and my procedure is like PROC_VALIDATION(FILENAME IN VARCHAR2(50));
my procedure passing parameter also.
please help.Is this what you are looking for?
SQL> create table test (no integer);
Table created.
SQL> create or replace procedure p(val in integer)
2 as
3 begin
4 insert into test(no) values (val);
5 commit;
6 end;
7 /
Procedure created.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
C:>type c:\test.bat
set hostvar=%1
echo conn karthick/*****@*****
echo exec p ^^^(%hostvar%^^^)
) | sqlplus -s /nolog
C:>c:\test.bat 1
C:>set hostvar=1
C:>(
echo conn karthick/*****@*****
echo exec p ^(1^)
) | sqlplus -s /nolog
PL/SQL procedure successfully completed.
C:>sqlplus karthick/*****@*****
SQL*Plus: Release 11.1.0.6.0 - Production on Wed Nov 27 16:35:54 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> select * from test;
NO
1
SQL> -
Query regarding running Java application from Batch file
Hi,
I have written an application in Java and I have packaged it as a JAR file.
In my system I use a batch file called 'run.bat' to execute the program. The batch file is as follows:
java -classpath "%CLASSPATH%;editor.jar" editor.JPad
This works fine in my system. But when it is executed in other systems where JRE is not configured properly, I am not able to correctly start the Java application.
Please can anybody tell me, how to detect the JRE from the Batch file and refer to it correctly, so that it will run in any system with JRE.
Can we do this from a Batch file ?
Hoping for a quick reply.
Thanks,
S.SampathYou can't really "detect" whether a JRE is available from a batch. All I can think of is to check for the typical Java variables (JVM_HOME, CLASSPATH etc) to exist. If they don't, especially JVM_HOME, a JRE is probably not installed.
Maybe you are looking for
-
iTunes is billing my account for my purchases, but I am no longer receiving a receipt in my email, why is this ? And how do I get it fixed ?
-
Unable to create an internet shortcut (simple process, but doesn't work)
There really aren't any details. The process just doesn't work & research suggests that it may well be browser related.
-
System is not recording the Service details while doing recording of ML81N
Dear PP experts, Please help me on this.I am doing the recording of transaction ML81N through SHDB but system is not capturing the fields of formula variables while maintaining the service details only. else everything it is capturing.. please sugges
-
I have a iMac8,1 is Windows 7 64 Bit supported by boot camp?
I performed a reformat and install of OS X 10.8 and updated to 10.8.2 and installed Windows 7 usint boot camp assistant and it runs fine but i have not boot camp utilities like I used to on Lion i have to manually switch between OS's
-
How do you get the magic mouse to work on bootcamp running windows 7 on Mac mini?