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,
    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..

  • 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
    Vijay

    Hi!
    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
    Vijay

    You 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.
    Simer

    warnerja 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
    Aditya

    Vikash.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,
    SAN

    Hi 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
    vjoy

    Here 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,
    Sandeep

    Please 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

  • Call Procedure from a Button

    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.Sampath

    You 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