CALLING ORACLE STOREDPROCEDURES FROM JAVA

Hi friends
can anyone tell me how to use storedprocedures of Oracle with swings...
THANX IN ANTICIPATION
aLEX

Please check the following code:
CallableStatement cstmt = conn.prepareCall("{ ? = call inc_trace()}");
cstmt.registerOutParameter(1, Types.INTEGER);
cstmt.executeUpdate();
trace = cstmt.getInt(1);
Attention:
(1) you must use registerOutParameter() to set the return message;
(2) and, your must use setXXX methods to set parameters.
Hope this help!
Jack

Similar Messages

  • Problem calling oracle SP from Java

    Hi I am trying to call an oracle SP from Java program and getting the error code 17060. Below is my code:
    Oracle SP:
    create or replace type item as object (itemnumber varchar2(9),itemdesc varchar2(35));
    create or replace type uom as object (prodUOM varchar2(18), ratioDen NUMBER(1));
    CREATE OR REPLACE TYPE uom_Arr aS VARRAY(100) OF uom;
    create or replace package test_pkg_xml is
    procedure test_sp_xml (item_rec item,
    uom_tbl uom_arr);
    end test_pkg_xml;
    create or replace package body test_pkg_xml is
    procedure test_sp_xml (item_rec item,
    uom_tbl uom_arr)
    is
    begin
    null;
    end;
    end test_pkg_xml;
    Java Code
    public class item implements SQLData {
    private String sql_type;
    public String itemnumber ;
    public String itemdesc ;
    public String getSQLTypeName() throws SQLException { return sql_type; }
    public void readSQL(SQLInput stream, String typeName)throws SQLException
    sql_type = typeName;
    itemnumber = stream.readString();
    itemdesc = stream.readString();
    public void writeSQL(SQLOutput stream) throws SQLException
    System.out.println("in write sql");
    stream.writeString (itemnumber);
    stream.writeString (itemdesc);
    package com.tgt.dstb.dwm.dstbtowm.dao;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import java.sql.Connection;
    import java.sql.CallableStatement;
    import java.sql.Connection;
    import java.sql.ResultSet;
    import java.sql.Types;
    import java.sql.SQLException;
    import java.util.Map;
    import java.util.Hashtable;
    public class TestDOM
    public static void test(Connection conn) throws Exception
    item obj1 = new item();
    Obj2 obj2 = new Obj2();
    Obj2[] obj3 = {new Obj2(), new Obj2()};
    String sql = "call " + "test_pkg_xml.test_sp_xml(?,?)";
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder parser = factory.newDocumentBuilder();
    Document document = parser.parse( "item.xml" );
    Element itemMaster = document.getDocumentElement();
    NodeList itemNumber = itemMaster.getElementsByTagName("itemNumber");
    NodeList itemDesc = itemMaster.getElementsByTagName("itemDesc");
    System.out.println("Item = ");
    String itmname = DOMUtil.getSimpleElementText( itemMaster, "itemNumber" );
    String itmdesc = DOMUtil.getSimpleElementText( itemMaster, "itemDesc" );
    obj1.itemnumber = itmname;
    obj1.itemdesc = itmdesc;
    System.out.println("itmname = " + obj1.itemnumber );
    System.out.println("itmdesc = " + obj1.itemdesc );
    NodeList uoms = itemMaster.getElementsByTagName("uoms");
    NodeList uom = itemMaster.getElementsByTagName("uom");
    System.out.println("uom = ");
    for( int i=0; i<uom.getLength(); i++ ) {
    String itmprodUOM = DOMUtil.getSimpleElementText(
    (Element)uom.item(i),"prodUOM" );
    obj3.prodUOM = itmprodUOM;
    String itmratioDen = DOMUtil.getSimpleElementText(
    (Element)uom.item(i), "ratioDen" );
    obj3[i].ratioDen = itmratioDen;
    System.out.println( " "+ itmprodUOM +" ("+itmratioDen+")" );
    try
    Hashtable map = new Hashtable();
    map.put ("item", Class.forName ("com.tgt.dstb.dwm.dstbtowm.dao.item"));
    conn.setTypeMap(map);
    System.out.println("here 11111 ");
    CallableStatement stmt = conn.prepareCall("call test_pkg_xml.test_sp_xml(?,?)");
    System.out.println("here 2 ");
    stmt.setObject(1,obj1);
    System.out.println("here 3 ");
    stmt.setObject(2,obj3);
    System.out.println("here 4 ");
    stmt.execute();
    System.out.println("here 5 ");
    }catch (SQLException e)
    System.out.println("exception :"+e.getErrorCode());
    Can you please point out where I might be going wrong with the code? Any help would be greatly appreciated.
    PS : I am getting the error 17060 after the stmt : System.out.println("here 2 ");
    Thanks,
    Nitin

    Avi, I changed my code to:
    package com.tgt.dstb.dwm.dstbtowm.dao;
    import javax.xml.parsers.*;
    import org.w3c.dom.*;
    import java.sql.Connection;
    //import java.sql.CallableStatement;
    import java.sql.*;
    //import java.util.Map;
    //import java.util.Hashtable;
    import oracle.sql.ArrayDescriptor;
    import oracle.sql.*;
    import oracle.jdbc.*;
    public class TestDOM
    public static void test(Connection conn) throws Exception
         item obj1 = new item();
         Obj2 obj2 = new Obj2();
         Obj2[] obj3 = {new Obj2(), new Obj2()};
         String sql = " call test_pkg_xml.test_sp_xml(?,?)";
         DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder parser = factory.newDocumentBuilder();
    Document document = parser.parse( "item.xml" );
    Element itemMaster = document.getDocumentElement();
    NodeList itemNumber = itemMaster.getElementsByTagName("itemNumber");
    NodeList itemDesc = itemMaster.getElementsByTagName("itemDesc");
    System.out.println("Item = ");
    String itmname = DOMUtil.getSimpleElementText( itemMaster, "itemNumber" );
    String itmdesc = DOMUtil.getSimpleElementText( itemMaster, "itemDesc" );
    obj1.itemnumber = itmname;
    obj1.itemdesc = itmdesc;
    System.out.println("itmname = " + obj1.itemnumber );
    System.out.println("itmdesc = " + obj1.itemdesc );
    NodeList uoms = itemMaster.getElementsByTagName("uoms");
    NodeList uom = itemMaster.getElementsByTagName("uom");
    System.out.println("uom = ");
    for( int i=0; i<uom.getLength(); i++ ) {
    String itmprodUOM = DOMUtil.getSimpleElementText(
    (Element)uom.item(i),"prodUOM" );
    obj3.prodUOM = itmprodUOM;
    String itmratioDen = DOMUtil.getSimpleElementText(
    (Element)uom.item(i), "ratioDen" );
    obj3[i].ratioDen = Integer.parseInt(itmratioDen);
    System.out.println( " "+ itmprodUOM +" ("+itmratioDen+")" );
    try
    System.out.println("here 1 ");
    OracleCallableStatement stmt = (OracleCallableStatement)
    conn.prepareCall("BEGIN test_pkg_xml.test_sp_xml(?,?); END;");
    System.out.println("here 1.1 ");
    System.out.println("here 1.2 ");
    ArrayDescriptor desc1 = ArrayDescriptor.createDescriptor("UOM_ARR", conn);
         ARRAY array_to_pass1 = new ARRAY(desc1, conn, obj3);
    System.out.println("here 2 ");
    stmt.setObject(1,obj1,OracleTypes.STRUCT);
    System.out.println("here 3 ");
    stmt.setArray(2,array_to_pass1);
    System.out.println("here 4 ");
    stmt.execute();
    System.out.println("here 5 ");
         }catch (Exception e)
              e.printStackTrace();
    However, now I the code is printing
    "here 1 "
    and then giving
    "[1/4/07 11:37:28:133 CST] 00000036 SystemErr R java.lang.ClassCastException: com.ibm.ws.rsadapter.jdbc.WSJdbcCallableStatement"
    at "OracleCallableStatement stmt = (OracleCallableStatement)
    conn.prepareCall("BEGIN test_pkg_xml.test_sp_xml(?,?); END;");"
    statement.
    I am using Rational App Developer Version 6.0.1 and getting a connection using
    the below code:
              DataSource     dataSource=null ;
              Context jndiContext = new InitialContext();
              dataSource =
    (DataSource)jndiContext.lookup("java:comp/env/jdbc/DWM3DDS");
              Connection wsConn = dataSource.getConnection();
    Looks like this exception occurs when I am casting java.sql.Connection object to OracleCallableStatement. Do you have any idea why this might be occuring? Have you encountered this kind of a problem?
    Thanks,
    Nitin

  • Calling oracle reports from java applications

    Hi:
    I was wondering if anyone can tell me how to invoke an oracle report from a java application.

    yes it is possible. There is a cgi script called viewreport.cgi. Have the jsp page call it (GET or POST method) and place the user parameters inside the form.

  • Calling oracle Function from java

    first of all ... i don't know english very vell and sorry about it ..... then ...
    i've created table in oracle :
    create table STUDENT
    ID NUMBER,
    NAME VARCHAR2(50),
    SURNAME VARCHAR2(50),
    AGE NUMBER
    and than i've wrote function like that :
    create or replace function sf_SearchStudent
    nID in number
    return MyPackage.CursorType is
    Result MyPackage.CursorType;
    begin
    open Result for select * from STUDENT where ID=nID;
    return Result;
    end sf_SearchStudent;
    and it's working fine but in java i wrote code like that :
    CallableStatement callst = conn.prepareCall("{?=call sf_SearchStudent(?,?,?,?)}");
    callst.registerOutParameter(1, OracleTypes.CURSOR);
    callst.setInt(1,id);
    callst.setString(2,name);
    callst.setString(3,surname);
    callst.setInt(4,age);
    callst.executeUpdate(); ------->>>>> ERROR Occur
    ResultSet res = ((OracleCallableStatement)callst).getCursor(1);
    while (res.next())
    System.out.println(res.getInt("ID"));
    System.out.println(res.getString("NAME"));
    System.out.println(res.getString("SURNAME"));
    System.out.println(res.getInt("AGE"));
    but here is an error and i don't know why :( ....... please help me ..... F!
    error type :
    java.sql.SQLException: Missing IN or OUT parameter at index:: 5

    no it's not a problem ........ I so already tried, but a mistake all the same was. After that I a little bit simplified.
    ok consequently i did oracle procedure like that :
    create or replace function sf_SearchStudent
    nID in number
    return MyPackage.CursorType is
    wCursor MyPackage.CursorType;
    begin
    open wCursor for Wselect;
    return wCursor;
    end sf_SearchStudent;
    and the java source code looks like that :
    CallableStatement callst = conn.prepareCall("{?=call sf_SearchStudent(?,?,?,?)}");
    callst.registerOutParameter(1, OracleTypes.CURSOR);
    callst.setString(1, name);
    callst.executeUpdate(); ------------------>>>>>>>>>> HERE IS AN ERROR ------------<<<<<<<<<<<<
    ResultSet res = ( (OracleCallableStatement) callst).getCursor(4);
    while (res.next())
    System.out.println(res.getInt("ID"));
    System.out.println(res.getString("NAME"));
    System.out.println(res.getString("SURNAME"));
    System.out.println(res.getInt("AGE"));
    error type :
    java.sql.SQLException: Missing IN or OUT parameter at index:: 3

  • Problem in calling oracle procedure from java

    Oracle procedure with the following parameters.
    CREATE OR REPLACE PROCEDURE CREDITED_TO_STORE_INSERT (P_CUST# IN NUMBER,
    P_INV_DATE IN DATE,
    P_MEMO# IN NUMBER,
    P_SESS_ID IN VARCHAR2 ) IS
    BEGIN
    /*.........Procedure Body with select and insert statements there no OUT or return variable/value......*/
    END;
    Now i am calling this procedure with the java code in java.
    public boolean execProcedure(String storeNo, String invoiceDate, String claimNo, String sessionID) throws SQLException {
         CallableStatement cstmt = null;
         java.sql.Date invicDate = this.StringToDate(invoiceDate);
         try
         cstmt = conn.prepareCall("{call WEBUSER.CREDITED_TO_STORE_INSERT(?,?,?,?,?,?)}");
         cstmt.setInt(1, Integer.parseInt(storeNo));
         cstmt.setDate(2, invicDate);
         cstmt.setInt(3, Integer.parseInt(claimNo));
         cstmt.setString(4, sessionID);
         cstmt.execute();
         catch (Exception e)
         System.out.println (e);
         } // catch (Exception e)
         finally
         try
         cstmt.close();
         catch (Exception ex)
         } // catch (Exception ex)
         } // finally
         return true;
    But it will return the following exception.
    [STDOUT] java.sql.SQLException: Missing IN or OUT parameter at index:: 5
    i don't know why :( please help me ...

    your procedure has 4 parameters but in the prepared statement you define 6 placeholders

  • Curious thing while calling a procedure from Java !...

    Hi !. My name is Agustin and my doubt would be the following one... I am working for a e-business comp and they asked me to call a procedure from java... The code is the following one:
    CallableStatement cs = null;
    System.out.println("Fecha Nro. 1: " + paramFechaDesde);
    System.out.println("Fecha Nro. 2: " + paramFechaHasta);
    try
    cs = getDBTransaction().createCallableStatement("{call paq_w_ListadoSiniestralidadART. p_sinsiniest(?,?,?,?) }",0);
    cs.registerOutParameter(4,OracleTypes.VARCHAR);
    cs.setInt(1,paramContrato.intValue());
    cs.setString(2,paramFechaDesde);
    cs.setString(3,paramFechaHasta);
    cs.setString(4,paramNombreArchivo);
    cs.executeQuery();
    String nomArchivo = cs.getString(4);
    System.out.println("### " + nomArchivo +" ###");
    catch(SQLException e)
    The weird thing is that, I was expecting a big big exception but the only thing I got is
    ### Error ###
    The String I am expecting is a file's name !; so I am a little bit confused...
    Also I didn't know where to post so If it's in the wrong category... I apologize !... If anyone need more details, I'll be checking out... The account I am working on is an Insurance company, who is the one who provide access to the DB and the procedures... So I can't check what's inside...

    Please provide your Java and OS versions, the JDBC jar file and the Oracle DB version being used when you post.
    >
    I was expecting a big big exception
    >
    Then why do you have an empty exception block? That just makes it disappear so you won't see one if it happens.
    And your code has
    cs.registerOutParameter(4,OracleTypes.VARCHAR);
    cs.setString(4,paramNombreArchivo);You use 'registerOutParameter' for an OUT parameter and the 'setXXX' methods for other parameters.
    Remove the 'setSTring' for the OUT parameter.
    Then as malcollmmc already said
    >
    Sounds like the PL/SQL is returning "Error" as the 4th parameter of the call
    >
    The actual value returned by PL/SQL is strictly determined by the PL/SQL code and Java and JDBC are not involved.
    Fix the code problems, retest, and folllowup with whoever wrote the code if it still returns ERROR.

  • Problem when calling a report from java

    Hi all,
    i have created a report using ireport which contains arabic data.
    when i execute the report from ireport to generate a pdf file it works.
    however when i call this report from java i have an exception"
    Could not create the report Could not load the following font :
    pdfFontName : ARIAL.TTF
    pdfEncoding : Identity-H"
    the pdfFont i used it in ireport, also the pdfEncoding.
    did anyone passed with the same problem
    thanks for help

    Hello Oracle experts,
    The parameters are getting passed successfully in my report.
    But I want to know hous to use it in my query group.
    I just want the syntax.
    Thanks

  • ORA-00911: invalid character - Calling a function from Java..

    Hi to all.. I have an issue when calling an oracle function from Java..
    This is my Java code:
    final StringBuffer strSql = new StringBuffer();
    strSql.append("SELECT GET_TBL('II_2_1_6_5') AS TABLA FROM DUAL;");
    st = conexion.createStatement();
    rs = st.executeQuery(strSql.toString());
    and in the executeQuery a SQLException is throwed:
    java.sql.SQLException: ORA-00911: invalid character
    I paste the query in TOAD and it works.. :S
    anybody knows how can I solve this?

    Remove the Semicolon after Dual.
    strSql.append("SELECT GET_TBL('II_2_1_6_5') AS TABLA FROM DUAL");
    Sushant

  • Is it possible to call ctx_doc.filter from Java?

    Hello all,
    Is it possible to call ctx_doc.filter from Java?
    If so, do you have a code sample?
    Thanks,
    Marvin

    I have some Java code using ctx_doc.markup that can help:
    try {
    //make db conn
    OracleCallableStatement stmt =(OracleCallableStatement)conn.prepareCall("begin "+
    "ctx_doc.markup(index_name=>'text_idx', "+
    "textkey=>?,"+
    "text_query=>?,"+
    "restab=>?,"+
    "starttag=> '<a>',"+
    "endtag=> '</a>' "+
    "); " +
    "end; ");
    ... // register other parameters
    stmt.registerOutParameter(3, OracleTypes.CLOB);
    stmt.execute();
    oracle.sql.CLOB text_clob=null;
    text_clob = ((OracleCallableStatement)stmt).getCLOB(3);
    // read the CLOB by chunks
    int chunk_size=text_clob.getChunkSize();
    Reader char_stream = text_clob.getCharacterStream();
    char[] char_array = new char[chunk_size];
    for(int n=char_stream.read(char_array);n>0; n=char_stream.read(char_array)){
    out.print(char_array);}
    }catch (SQLException e)

  • Calling ctx_doc.filter from java...is it possible?

    Hello all,
    Is it possible to call ctx_doc.filter from Java?
    If it is possible, does anyone have a code sample they can share?
    Thanks for the help,
    Marvin
    http://www.esenai.com

    I have some Java code using ctx_doc.markup that can help:
    try {
    //make db conn
    OracleCallableStatement stmt =(OracleCallableStatement)conn.prepareCall("begin "+
    "ctx_doc.markup(index_name=>'text_idx', "+
    "textkey=>?,"+
    "text_query=>?,"+
    "restab=>?,"+
    "starttag=> '<a>',"+
    "endtag=> '</a>' "+
    "); " +
    "end; ");
    ... // register other parameters
    stmt.registerOutParameter(3, OracleTypes.CLOB);
    stmt.execute();
    oracle.sql.CLOB text_clob=null;
    text_clob = ((OracleCallableStatement)stmt).getCLOB(3);
    // read the CLOB by chunks
    int chunk_size=text_clob.getChunkSize();
    Reader char_stream = text_clob.getCharacterStream();
    char[] char_array = new char[chunk_size];
    for(int n=char_stream.read(char_array);n>0; n=char_stream.read(char_array)){
    out.print(char_array);}
    }catch (SQLException e)

  • Exception while calling BPEL process from JAVA

    Hi All
    I am getting this error while calling BPEL process from JAVA
    first I've got javabeans exception then I changed the port to default 23791 .. now I am getting the following
    Exception in thread "main" oracle.adf.mds.exception.MDSRuntimeException: Cache not initialized
         at oracle.apps.fnd.framework.mds.cache.ATGCacheMgrDelegateImpl.<init>(ATGCacheMgrDelegateImpl.java:325)
         at oracle.apps.fnd.framework.mds.cache.ATGCacheFactoryImpl.<init>(ATGCacheFactoryImpl.java:44)
         at oracle.apps.fnd.cp.request.CpContext.getMDSContext(CpContext.java:1084)
         at oracle.apps.fnd.cp.request.Run.main(Run.java:130)
    can anyone help

    Sorry guys for disturbing.
    I deleted the file CacheDefaultConfig.properties by mistake from $JAVA_TOP
    I replaced it and it worked fine
    Thanks,
    Baraa

  • Call Oracle Reports from  Forms ver 9i or 10g

    Hi,
    Can somebody guide me, how to call Oracle Reports from the Oracle form 9i,
    Run_product is no more available into 9i & 10g, Run_report_object is not working with out put type "Screen" or "preview".
    What is the best way to call the reports from the form ??? pls help...
    Thanks in avdance.
    Jitesh ([email protected])

    You can use RUN_REPORT_OBJECT with CACHE type, and WEB.SHOW_DOCUMENT to view the document on the screen.
    In the Forms help you should find examples.
    If you have access to Metalink, have a look at Note:207396.1.

  • Call .bat file from java code

    I need to call an application that uses a .bat file to execute from a java program. Is that possible?
    This is the .bat file:
    importcli.exe ciaf2735 C:\Importcli\files\SAI2735*.txt  
    importcli.exe ciaf2735 C:\Importcli\files\CI2735*.txt  
    importcli.exe ciaf2735 C:\Importcli\files\SC2735*.txt  
    importcli.exe db1800 C:\Importcli\files\*.mdb

    magaupe wrote:
    I need to call an application that uses a .bat file to execute from a java program. Is that possible?
    This is the .bat file:
    importcli.exe ciaf2735 C:\Importcli\files\SAI2735*.txt  
    importcli.exe ciaf2735 C:\Importcli\files\CI2735*.txt  
    importcli.exe ciaf2735 C:\Importcli\files\SC2735*.txt  
    importcli.exe db1800 C:\Importcli\files\*.mdb
    Hmmm, I wonder what would happen if there were a web search engine and you could research like this:
    [http://www.google.com/search?hl=en&q=call+.bat+file+from+java]

  • Calling a servlet from java

    How to call a servlet from java?
    your help is greatly appreciated..

    Welcome to the forum
    You seem to be misunderstanding something. Do some googling to learn what you need about servlets. Simplified, servlets are java code that's hosted by a web container, such as Tomcat. When a servlet gets called as a consequence of someone requesting a url from the container, it takes in a request object and a response object. All the magic is then in creating an appropriate response (e.g. html) for the incoming request.

  • Call oracle reports from MENU in oracle ebs

    is it possible in oracle ERP EBS R12
    how to call oracle reports from menu [any screen] in oracle ebs erp r12??
    please help

    you may do a few things from menus and by adding buttons, but this is not really standard.
    You may add button on the form or web page that after a certain action or event. You'll have to do personalization / extension and everything is present in oracle for normal report submission.
    Why this is not done thru normal submission ?

Maybe you are looking for

  • Issue in field mapping of LSMW

    Hi, i am new to ABAP, i am working on LSMW using BAPI (BUS6035) for transaction fb02 I am facing a problem that one field of header i.e. KURSF and WRBTR in present in same BAPI structure. How to map these fields??? Thanks in advance Kirti

  • How to create business rules from Jdeveloper 10.1.3.1.0

    Dear Experts Can I able to create Oracle Business rules from My JDeveloper 10.1.3.1.0. Using this link They are creating repositories, rule sets for their BPEL process, But in my version I cant found <BPEL components> under component palette. Why the

  • Exit before save a Service Sheet

    People, I need to control amounts before a service sheet is saved. I tested the user-exits and badis available for this situation and I can not find one that runs right before being recorded. Is There another exit besides which provides me the transa

  • Have connection, but no internet

    I have an iBook (OSX 10.4.3, airport (Great signal) and installed an airport update several days ago and since then my internet connection has been very sketchy. I connect using Airport and several other people are successfully using the signal, my m

  • Alternative chart of accounts

    Hi Masters, I have two Chart of Accounts 1) main COA  2) alternative COA How entry will flow to these 2 a/cs. Alternatine coa is country speciffic. regards, Ani