Stored Procedure error in Java

My Java application is invoking stored procedure(Oracle 10g). The stored procedure is opening a cursor for a SQL query that is created dynamically in side the procedure. Whenever there is an error while opening the cursor (i.e. executing the SQL query), I get the following exception message in Java application logs irrespective of what error has caused during SQL execution.
SQLException for SQL [{call PRC_TEST(?, ?, ?, ?, ?, ?, ?, ?)}]; SQL state [60000]; error code [604]; ORA-00604: error occurred at recursive SQL level 1
ORA-01003: no statement parsed
; nested exception is java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-01003: no statement parsed
e.g. If the query is like select * from tableA and I dont have proper privlieges. I should get error message while opening the cursor :- insufficient privileges.
Is there any way where we can get more precise(or exact!) error message (in Java application logs) that stopped SQL execution while opening the cursor?

I'm using a callable statement.
The strange thing is that, when i remove all IN and OUT paramters in the java code and the stored procedure, both the call to the stored procedure and teh execution of the stored procedure works.
The moment I add in just a IN parameter (in the stored procedure, and setting it in the java code) it stops working, and i receive this error.
java.sql.SQLException: ORA-06550: line 1, column 23:
PLS-00103: Encountered the symbol "" when expecting one of the following:
:= . ( @ % ;
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:114)
heres the java code and stored procedure
CREATE OR REPLACE PROCEDURE sampleProcedure(tax out number)
is
BEGIN
tax := 10 *.15;
/END;
CallableStatement statement =conn.prepareCall("{call sampleprocedure ?}");
statement.registerOutParameter(1,java.sql.Types.INTEGER);
statement.execute();
ResultSet rs = statement.getResultSet();
if((rs = statement.getResultSet()) != null){

Similar Messages

  • Executing a stored procedure from a java program

    Hi.. how can i call a oracle stored procedure from a java
    program. the OSP has four IN parameters and one OUT parameter(a
    cursor). when i try this way.. i get an error
    con = DriverManager.getConnection(url, "stored", "stored");
    CallableStatement cs =
    con.prepareCall(
    "{call stored_proce_1(?,?,?,?,?)}");
    cs.registerOutParameter(1, OracleTypes.CURSOR);
    cs.setString(2, "14541");
    cs.setString(3, "gen");
    cs.setInt(4, 0);
    cs.setInt(5, 5);
    ResultSet rs =cs.getResultSet();
    while(rs.next()){
    System.out.println(rs);
    appreciate ur help.
    qs

    I'm no expert on this, but I have a similar call where I fetch
    an Oracle REF CURSOR from a call to a stored function. If you
    fetch the cursor as an Object from your CallableStatement, you
    can then cast it to a ResultSet e.g.
    mystatement.executeUpdate();
    ResultSet rs = (ResultSet) mystatement.getObject(1);
    Then you should be able to loop through your ResultSet as usual.
    Good luck!
    Chris

  • Calling the Java Method in PL/SQL Java Stored procedure errors out

    Hi,
    I could not find a suitable thread to post my PL/SQL question so iam posting it here.........
    I have written a java class by name XYZ which has a method ABC for which there are 9 arguements being passed and its a VOID method.
    This java class has been loaded into ORACLE using DBMS_JAVA.LOADJAVA pkg, Now this class is being called in the oracle as a JAVA Stored procedure...... When ever im trying to call the procedure it throws the following error
    ORA-29531: no method
    *Cause:    An attempt was made to execute a non-existent method in a
    Java class.
    *Action:   Adjust the call or create the specified method.
    The code snippet as follows
    JAVA CODE:
    Class xyz
    public static void Abc (String hostName,
    int port,
    String serviceURL,
    String soapAction,
    int timeOut,
    String wsUser,
    String wsPasWd,
    String keyStore,
    String keyStorePasWd)
    //method implementation
    JAVA STORED PROCEDURE:
    create OR REPLACE procedure ABC_JAVA_SP_CALL
    (p_hostname in varchar2, p_port in number, p_serviceurl in varchar2, p_soapaction in varchar2, p_timeout in number, p_wsuser in varchar2, p_wspasswd in varchar2, p_ks_path in varchar2, p_ks_passwd in varchar2)
    as
    language java
    name 'xyz.Abc(java.lang.String, int, java.lang.String, java.lang.String, int, java.lang.String, java.lang.String, java.lang.String, java.lang.String)';
    When i try to call
    declare
    p_hostname varchar2(100);
    p_port number;
    p_serviceurl varchar2(100);
    p_soapaction varchar2(100);
    p_timeout number;
    p_wsuser varchar2(100);
    p_wspasswd varchar2(100);
    p_ks_path varchar2(100);
    p_ks_passwd varchar2(100);
    begin
    //SP which returns the values for the required parameters.
    comppkg.getvcsinfo(
    p_hostname,
    p_port ,
    p_serviceurl,
    p_soapaction,
    p_timeout,
    p_wsuser,
    p_wspasswd,
    p_ks_path,
    p_ks_passwd
    Layer7_icengc_ws_tes(p_hostname,
    p_port ,
    p_serviceurl,
    p_soapaction,
    p_timeout,
    p_wsuser,
    p_wspasswd,
    p_ks_path,
    p_ks_passwd);
    end;
    This thing ends up with
    29531. 00000 - "no method %s in class %s"
    *Cause:    An attempt was made to execute a non-existent method in a
    Java class.
    *Action:   Adjust the call or create the specified method.
    Im not understanding what wrong am i doing
    pls help
    Edited by: madhusudan on Feb 12, 2013 8:07 PM

    Hello,
    there is the forum {forum:id=65} for questions about using Java within Oracle.
    Regards
    Marcus
    Edited by: Marwim on 13.02.2013 07:56
    I could not find a suitable thread to post my PL/SQL question so iam posting it here.........You got the hint to the correct forum alread in another thread {message:id=10837976}
    And if you think this is not related to Java but PL/SQL, then you should ask in {forum:id=75}

  • ORABPEL-11809 - call a stored procedure - error in OUT parameter

    Hi all.
    I have a problem in a BPEL process that calls a stored procedure.
    I create a Partner Link that calls a stored procedure in the database. That procedure returns a type that is a table (is defined as a type of the database).
    When I deploy the process I have the following error:
    <messages>
    - <input>
    - <WC01_Pesquisa_Ut_InputVariable>
    - <part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="InputParameters">
    - <InputParameters xmlns="http://xmlns.oracle.com/pcbpel/adapter/db/IGIF/WC01/PESQUISA_UT/">
    <P_NIR xmlns="">
    165968274
    </P_NIR>
    <P_NOME_COMPLETO xmlns="">
    carla diogo
    </P_NOME_COMPLETO>
    <P_SEXO xmlns="">
    Feminino
    </P_SEXO>
    <P_DATA_NASC xmlns="">
    2007-03-01
    </P_DATA_NASC>
    <P_NATURALIDADE xmlns=""/>
    </InputParameters>
    </part>
    </WC01_Pesquisa_Ut_InputVariable>
    </input>
    - <fault>
    - <remoteFault xmlns="http://schemas.oracle.com/bpel/extension">
    - <part name="code">
    <code>
    17002
    </code>
    </part>
    - <part name="summary">
    <summary>
    file:/oracle/product/10.1.3/SOA/Integration10131/bpel/domains/default/tmp/.bpel_SaudeIdentificarCidadao_5.0_e3768f57d137443e1ba52d4a6d809426.tmp/WC01_Pesquisa_Ut.wsdl [ WC01_Pesquisa_Ut_ptt::WC01_Pesquisa_Ut(InputParameters,OutputParameters) ] - WSIF JCA Execute of operation 'WC01_Pesquisa_Ut' failed due to: Error registering an out parameter.
    An error occurred when registering parameter PESQUISA_UT as an out parameter of the IGIF.WC01.PESQUISA_UT API. Cause: java.sql.SQLException: Io exception: Connection reset [Caused by: Io exception: Connection reset]
    ; nested exception is:
         ORABPEL-11809
    Error registering an out parameter.
    An error occurred when registering parameter PESQUISA_UT as an out parameter of the IGIF.WC01.PESQUISA_UT API. Cause: java.sql.SQLException: Io exception: Connection reset [Caused by: Io exception: Connection reset]
    Check to ensure that the parameter is a valid IN/OUT or OUT parameter of the API. Contact oracle support if error is not fixable.
    </summary>
    </part>
    - <part name="detail">
    <detail>
    Internal Exception: java.sql.SQLException: Io exception: Connection resetError Code: 17002
    </detail>
    </part>
    </remoteFault>
    </fault>
    </messages>
    The code of the XSD created when I create the partner link is:
    <schema targetNamespace="http://xmlns.oracle.com/pcbpel/adapter/db/IGIF/WC01/PESQUISA_UT/" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:db="http://xmlns.oracle.com/pcbpel/adapter/db/IGIF/WC01/PESQUISA_UT/"
    elementFormDefault="unqualified" attributeFormDefault="unqualified">
    <element name="InputParameters">
    <complexType>
    <sequence>
    <element name="P_NIR" type="decimal" db:index="1" db:type="NUMBER" minOccurs="0" nillable="true"/>
    <element name="P_NOME_COMPLETO" type="string" db:index="2" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    <element name="P_SEXO" type="string" db:index="3" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    <element name="P_DATA_NASC" type="dateTime" db:index="4" db:type="DATE" minOccurs="0" nillable="true"/>
    <element name="P_NATURALIDADE" type="string" db:index="5" db:type="VARCHAR2" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <element name="OutputParameters">
    <complexType>
    <sequence>
    <element name="PESQUISA_UT" type="db:TABELA_DE_IDS" db:index="0" db:type="Array" minOccurs="0" nillable="true"/>
    </sequence>
    </complexType>
    </element>
    <complexType name="TABELA_DE_IDS">
    <sequence>
    <element name="PESQUISA_UT_ITEM" type="decimal" db:type="NUMBER" minOccurs="0" maxOccurs="unbounded" nillable="true"/>
    </sequence>
    </complexType>
    </schema>
    Any ideia?
    Thanks in advance.
    Carla

    I'd suggest that you turn on xml validation on the bpel boundaries to make sure that the xml being passed to the adapter is valid. You do this by logging in to bpel console, go to Manage Domain, at the bottom of the Configuration tab, set validateXml to true.
    Then see if it is an xml validation issue - in which case you will have to fix your maps to make sure it is valid indeed.
    Assuming your XML is valid and you are still seeing this error, couple of follow up questions:
    - are you using synonyms ?
    -- note that synonyms are not supported completely by the adapter at this time.
    - could you spell out where your types/sp-pkg resides and what are you connecting as at runtime ?
    -- just to keep things simple enough to debug, i'd do everything as just one user and slowly go to a scheme that you desire.
    HTH

  • JDBC Receiver Adapter - Stored Procedure - Error Illegal Parameter

    Hi experts,
    I have a problem with the next scenario:
    HTTP <-> XI -> JDBC
    XI sends the following message to JDBC Adapter in mode Receiver to execute a Stored Procedure in a Informix database:
    <ns0:mt_messageTestSP xmlns:ns0="urn:test">
      <statement>
        <hastus_exporta_dia action="execute">
          <fechaEnvio isInput="true" type="DATE">11/17/2008</fechaEnvio>
        </hastus_exporta_dia>
      </statement>
    </ns0:mt_messageTestSP>
    Note: The format that accepts the SP Informix in the field of type date is: MM/dd/yyyy
    The SP is running on an Informix database, and the parameter (fechaEnvio) that receive the SP is of type DATE. At runtime the SP does not run, and in the Component Monitoring of the Runtime Workbench I see the following error:
    Unable to execute statement for table or stored procedure. 'hastus_exporta_dia' (Structure 'statement') due to java.lang.IllegalArgumentException
    Any idea?
    Thanks,
    Jose.

    Hi,
        Check the date format...once again...
    In oracle date format is DD/MM/YYYY but if the same is sent from PI its throwing the error....
    but when i send the format as DD-Mon-YYYY its accepting and showing as DD/MM/YYYY in oracle tables
    so just try fetching the date field from the informix database and see how it is get converted into..and based on that send the format
    HTH
    Rajesh

  • Bea type 4 db2 driver-stored procedure error

    Iam creating a connection pool in weblogic 9.2 MP2
    using bea type 4 db2 driver and excuting a stored procedure.Iam getting following error
    I enabled spy
    spy(2008/02/13 09:41:58.050)>> Driver Name = DB2
    spy(2008/02/13 09:41:58.050)>> Driver Version = 3.60.24 (023731.010811.022315)
    spy(2008/02/13 09:41:58.050)>> Database Name = DB2/MVS
    spy(2008/02/13 09:41:58.050)>> Database Version = 8.1.5
    spy(2008/02/13 09:44:11.063)>> java.sql.SQLException: [BEA][DB2 JDBC Driver][DB2]UNACCEPTABLE SQL STATEMENT ErrorCode=-84 SQL
    State=42612
    The code is using
    CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
    as follows
    String sql = "CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
    myCallableStmt = con.prepareCall(sql);
    is ther are any issues in calling stored procedure with type 4 bea db2 driver.
    connectrion pool details
    jdbc:bea:db2://server:447
    weblogic.jdbc.db2.DB2Driver
    user=user
    LocationName=server
    portNumber=447
    serverName=host
    batchPerformanceWorkaround=true
    The code is working fine with type 2 ibm driver connection pool
    Also Iam trying with ibm type 4 driver
    Iam getting following error in configuration itself
    <Feb 13, 2008 11:18:44 AM EST> <Error> <JDBC> <BEA-001112> <Test "SELECT COUNT(*) FROM
    abc.xy_def" set up for pool "DataSourceIBM" failed with exception: "com.ibm.db2.jcc.a.SqlException: DB2 SQL error: SQLCODE: -725,
    SQLSTATE: 42721, SQLERRMC: CLIENT APPLNAME;server".>
    details
    jdbc:db2://mvsavt1_vipa.corpny.csfb.com:447/server
    com.ibm.db2.jcc.DB2Driver
    user=user
    locationName=server
    portNumber=450
    drivertype=4
    Any configuration required at db2 server

    Ok, Odd. Please email this post (the code below) and the
    output of each to [email protected] and ask them to investigate
    why one driver finds the procedure and the other doesn't.
    This will get back to me officially, and then I will be able
    to enlist all the resources to debug it. Is the stored
    procedure owned by the same schema as your 'user'?
    Mohamed Rabbani P M wrote:
    Joe,
    It is the same code you gave
    BEA Driver Code
    import java.io.*;
    import java.util.*;
    import java.net.*;
    import java.sql.*;
    import weblogic.common.*;
    public class dddb2
    public static void main(String argv[])
    throws Exception
    Connection c = null;
    try
    java.util.Properties props = new java.util.Properties();
    Driver d = (Driver)Class.forName("weblogic.jdbc.db2.DB2Driver").newInstance();
    props.put("user", "user");
    props.put("password", "password");
    props.put("locationName", "dbserver");
    String URL = "jdbc:bea:db2://dbhost:447";
    c = d.connect(URL, props);
    DatabaseMetaData dm = c.getMetaData();
    System.out.println(dm.getDriverVersion());
    System.out.println("Database version is " + dm.getDatabaseProductVersion() );
    CallableStatement p = c.prepareCall("{ CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");
    p.setInt(1,1234);
    p.setString(2,"XYZ");
    p.setString(3,"XYZ");
    p.setInt(5,1234);
    p.setString(6,"");
    p.setString(7,"XYZ");
    p.setString(9,"XYZ");
    p.setString(12,"XYZ");
    p.registerOutParameter(4,Types.INTEGER);
    p.registerOutParameter(8,Types.INTEGER);
    p.registerOutParameter(10,Types.INTEGER);
    p.registerOutParameter(11,Types.INTEGER);
    p.registerOutParameter(13,Types.INTEGER);
    p.setFetchSize(3);
    p.execute();
    catch (Exception e)
    { e.printStackTrace(); }
    finally
    { try {c.close();}catch (Exception e){} }
    IBM Driver Code
    import java.io.*;
    import java.util.*;
    import java.net.*;
    import java.sql.*;
    import weblogic.common.*;
    public class dddb2ibm
    public static void main(String argv[])
    throws Exception
    Connection c = null;
    try
    java.util.Properties props = new java.util.Properties();
    Driver d = (Driver)Class.forName("com.ibm.db2.jcc.DB2Driver").newInstance();
    props.put("user", "user");
    props.put("password", "password");
    //props.put("databaseName", "dbserver");
    String URL = "jdbc:db2://dbhost:447/dbserver";
    c = d.connect(URL, props);
    DatabaseMetaData dm = c.getMetaData();
    System.out.println(dm.getDriverVersion());
    System.out.println("Database version is " + dm.getDatabaseProductVersion() );
    CallableStatement p = c.prepareCall("{ CALL SP03 (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?) }");
    p.setInt(1,1234);
    p.setString(2,"XYZ");
    p.setString(3,"XYZ");
    p.setInt(5,1234);
    p.setString(6,"");
    p.setString(7,"XYZ");
    p.setString(9,"XYZ");
    p.setString(12,"XYZ");
    p.registerOutParameter(4,Types.INTEGER);
    p.registerOutParameter(8,Types.INTEGER);
    p.registerOutParameter(10,Types.INTEGER);
    p.registerOutParameter(11,Types.INTEGER);
    p.registerOutParameter(13,Types.INTEGER);
    p.setFetchSize(3);
    p.execute();
    catch (Exception e)
    { e.printStackTrace(); }
    finally
    { try {c.close();}catch (Exception e){} }

  • Stored Procedure error with JDBC:ODBC

    Hi,
    I am trying to run a stored procedure on RDMS (Uniaccess ODBC). This has 2 input parameters and returns a resultset of 3 columns. The following is the error I am getting and am stumped. Please help..
    (similar call statement works with VB and ADO)
    --------output ---------------
    Calling MGC005
    inside resultset sun.jdbc.odbc.JdbcOdbcCallableStatement@129206
    row 1
    get string 0004
    get string 00000
    get string
    SQLEcception : java.sql.SQLException: [AIS][UniAccess ODBC Driver]Invalid Column Number//Specified column is before the column specified in the previous call
    ----------------------source code ------------------
    import java.awt.Graphics;
    import java.sql.*;
    public class JdbcTest {
    public JdbcTest() {
         Connection con;
         CallableStatement stmt;
    try {
    Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
    catch (Exception ex) {
    System.out.println ("Database Driver not found");
    System.exit(0);
    try {
    String msDbUrl = "jdbc:odbc:CMS_TEST_ODBC";
    con = DriverManager.getConnection(msDbUrl, user, password );
    stmt = con.prepareCall("{ call MGC005(?, ?)}");
              stmt.setString( 1, "CH" );
              stmt.setString( 2, "ARRINGTON0909170320010615" );
    //          stmt.registerOutParameter( 1, java.sql.Types.VARCHAR);
    //          stmt.registerOutParameter( 2, java.sql.Types.VARCHAR );
    //           stmt.registerOutParameter( 3, java.sql.Types.VARCHAR );
              System.out.println( "Calling MGC005 " );
         ResultSet rs = stmt.executeQuery();
              while (rs.next()) {
    System.out.println( " inside resultset " + rs.getStatement() );
    System.out.println( " row " + rs.getRow() );
    System.out.println( " get string " + rs.getString(1) );
    System.out.println( " get string " + rs.getString(2) );
    System.out.println( " get string " + rs.getString(3) );
              String i = rs.getString (1);
              String s = rs.getString (2);
              String t = rs.getString (3);
    String text = i + " " + s ;
    System.out.println ( " Output " + text);
         stmt.close();
    con.close();
    } catch( SQLException ex ) {
    System.out.println ("SQLEcception : " + ex);
    public static void main(String[] args) {
    new JdbcTest();
    }

    Hi,
    The error seems to occur on the line:
    String i = rs.getString (1);
    The error exactly states what is occuring: "Specified column is before the column specified in the previous call". Try limiting the call to getString() to one for each column for each row.
    Try replacing these lines:
    System.out.println( " get string " + rs.getString(1) );
    System.out.println( " get string " + rs.getString(2) );
    System.out.println( " get string " + rs.getString(3) );
    String i = rs.getString (1);
    String s = rs.getString (2);
    String t = rs.getString (3);
    with something like:
    String i = rs.getString (1);
    System.out.println( " get string " + i);
    String s = rs.getString (2);
    System.out.println( " get string " + s);
    String t = rs.getString (3);
    System.out.println( " get string " + t);
    Hope this works,
    Kurt.

  • Callable statement with oracle stored procedure error

    i'm calling a stored procedure in java with the following code. However i constantly recieve this error
    so what is going on please HELP
    Parameter Type Conflict: sqlType=2006
    my call statement would be this:
    call Statement = {call getUserByLogin(?,?,?,?)}
    if(storedProcedureName=="getUserByLogin"){
    strCStmt = ("{call " + storedProcedureName +"(?,?,?,?) }");
    cStmt.setObject(1, "system");
    cStmt.setObject(2, "username");
    cStmt.setObject(3,"password");
    cStmt.registerOutParameter(4, java.sql.Types.REF);
    rs = cStmt.executeQuery();
    i've also tried it with a setString as the IN parameter:
    here's the stored procedure:
    CREATE OR REPLACE PROCEDURE getUserByLogin (
    arg_subscriptionName IN varchar,
    arg_loginName IN varchar,
    arg_password IN varchar,
    arg_rec_userinfo_valLanguage OUT types.rec_userinfo_valLanguage
    ) AS
    var_userNum int;
    BEGIN
    select
    u.userNum into var_userNum
    from
    userInfo u,
    subscription s
    where
    s.subscriptionName = arg_subscriptionName AND
    s.subscriptionNum = u.subscriptionNum AND
    u.loginName = arg_loginName AND
    u.password = arg_password;
    if (var_userNum is null) then
    var_userNum := 0;
    end if;
    getUser(var_userNum, arg_rec_userinfo_valLanguage);
    END;

    i'm calling a stored procedure in java with the
    following code. However i constantly recieve this
    error
    so what is going on please HELP
    Parameter Type Conflict: sqlType=2006
    my call statement would be this:
    call Statement = {call getUserByLogin(?,?,?,?)}
    if(storedProcedureName=="getUserByLogin"){
    strCStmt = ("{call " + storedProcedureName +"(?,?,?,?)
    cStmt.setObject(1, "system");
    cStmt.setObject(2, "username");
    cStmt.setObject(3,"password");
    cStmt.registerOutParameter(4, java.sql.Types.REF);
    rs = cStmt.executeQuery();
    i've also tried it with a setString as the IN
    parameter:
    here's the stored procedure:
    CREATE OR REPLACE PROCEDURE getUserByLogin (
    arg_subscriptionName IN varchar,
    arg_loginName IN varchar,
    arg_password IN varchar,
    arg_rec_userinfo_valLanguage OUT
    types.rec_userinfo_valLanguage
    ) AS
    var_userNum int;
    BEGIN
    select
    u.userNum into var_userNum
    from
    userInfo u,
    subscription s
    where
    s.subscriptionName = arg_subscriptionName AND
    s.subscriptionNum = u.subscriptionNum AND
    u.loginName = arg_loginName AND
    u.password = arg_password;
    if (var_userNum is null) then
    var_userNum := 0;
    end if;
    getUser(var_userNum, arg_rec_userinfo_valLanguage);
    END;
    /Hai,
    Try with this if u are using Oracle.
    import oracle.sql.*;
    import oracle.jdbc.driver.*;
    (inbetween ur code)
    cStmt.registerOutParameter(4, OracleTypes.CURSOR);
    //in place of "cStmt.registerOutParameter(4, java.sql.Types.REF);"
    Hope u reply with joy.
    regards,
    Siva Kumar Annavaram

  • Passing UDT TABLE of VARCHAR as an Input parameter in Stored procedure call from java

    I have following Type defined at the schema: ident_arr IS TABLE OF VARCHAR2(100) which is type of one of the input parameters. I am able to create oracle.sql.ARRAY object to map it with this UDT before calling my stored procedure from java. When I execute my stored procedure, I get the following error:
    ORA-06550: line 1, column 7:
    PLS-00306: wrong number or types of arguments in call to 'P_PV_WCC_INSERT'
    ORA-06550: line 1, column 7:
    PL/SQL: Statement ignored
    I have already checked all other parameter types.

    Hello,
    Thank you, guys, for advice. I should have explained calling context before, but what I basically need to do is to see if procedure(arg1, list(record(arg2, arg3))) returns true.
    I see array binding wouldn't fit there nicely. Internal procedure calls would be proc(next(arg1), next(arg2), next(arg3)) - if all these return true, external call should also return true. I would need to make a list of repeating values of arg1 and separate list(record(arg2, arg3)) into separate lists. I would also need to record whether the internal call returns true to deduce whether external call returns true.
    As I see no better way yet, I'll make Oracle procedure proc(arg1, arg2, arg3) and implement a loop in .NET side. If I optimize for performance, I'll probably pack the array of records into string and pass it for Oracle side to parse.
    Regards,
    Aurimas Pranskevicius

  • JDBC adapter Stored Procedure error: parameter was not supplied

    I am trying to call a Stored Procedure 'SP_FUSION_DEBMS_ADRC_MANAGE_CUSTOMER_ADDRESS' in our SQL Server database.
    XI 3.0 Sp13
    Jdbc Url: jdbc:microsoft:sqlserver://161.241.255.91:1433;databaseName=FusionDB;SelectMethod=Cursor
    I am getting following error:
    beging of error-----
    Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SP_FUSION_DEBMS_ADRC_MANAGE_CUSTOMER_ADDRESS' (structure 'Statement1'): java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]Procedure 'SP_FUSION_DEBMS_ADRC_MANAGE_CUSTOMER_ADDRESS' expects parameter '@control_no', which was not supplied.
    End of error-----
    I have defined the field "control_no" in the interface defenition but I am not sure what causing this error, error message is mis-leading.
    Please let me know if you have any hints/comments?
    thanks,
    Laxman molugu

    Hi Laxman,
    maybe you have checked this already...from the following help link....DECIMAL might be something you might want to try out....
    http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
    <i>action=EXECUTE
    Statements with this action result in a stored procedure being executed. The name of the element is interpreted as the name of the stored procedure in the database. If you use the optional <table> element, the value specified here is used as the stored procedure name. This enables you, for example, to define stored procedure names containing non-XML-compatible characters or characters that prevent them from being used in interface definitions in the Integration Builder/PCK.  If specified, <table> must be the first element in the block within <dbTableName>.
    The elements within the stored procedure are interpreted as parameters. They can optionally have the attribute isInput=“1“ (input parameter) or isOutput=“1“ (output parameter) or both (INOUT parameter). If both attributes are missing, the element is interpreted as an input parameter. The parameter names must be identical to those of the stored procedure definition.
    The attribute type=<SQL-Datatype> , which describes the valid SQL data type, is mandatory for all parameter types (IN, OUT, INOUT).
    The following SQL data types are supported:
    INTEGER, BIT, TINYINT, SMALLINT, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, CHAR, VARCHAR, STRING, LONGVARCHAR, DATE, TIME, TIMESTAMP, BINARY, VARBINARY, LONGVARBINARY, BLOB (input and output),CLOB (input and output), CURSOR (output; only in conjunction with the Oracle JDBC driver).</i>

  • Very urgent - Parsing stored procedure error !!!

    Hi,
    We tried to migrate a SQL server 7 database to an Oracle 8.1.7 database using the migration workbench. We had successfully captured the SQL server source model. But
    when we tried to create the Oracle model,
    the following error occurred for some stored procedure :
    "failed to parse procedure text: procedurexxx:
    java.lang.StringIndexOutOfBoundsException: String Index out of
    range: 0"
    This error occured even when we reparse the
    stored procedure. What does that mean and what can I do to solve it? As we have to solve this error urgently, your prompt reply
    will be highly appreciated.
    Thanks
    Ivan Hui

    Ivan, we really need a bit more information.
    Mail one of the stored procedures to [email protected] and we shall track down the error and, where possible, find a workaround to the problem.
    null

  • JDBC Stored Procedure error

    Hi All,
    Interface proxy to JDBC :
    In this I have used stored procedures and implemented structure accordingly.
    issue is while testing the interface its showing error for 1 field
    " Unable to execute statement for table or stored procedure. 'ABCD_SP' (Structure 'ABCD') due to java.sql.SQLException: Unsupported parameter type 'INT' for parameter 'VINSI' found "
    "JDBC message processing failed; reason Error processing request in sax parser: Error when executing statement for table/stored proc. 'ABCD_SP' (structure 'ABCD'): java.sql.SQLException: Unsupported parameter type 'INT' for parameter 'VINSI' found "
    I have communicated with DB team and they are saying that field ABCD is "INT" type only . In the same way in my message mapping also i have given INT for Type attribute .
    Please help what is the root cause .
    Vin

    Hi,
    i think you defined Parameter type as "INT" and the value is coming in CHAR formate.
    If Parameter type as "INT" then value should be some number and not Charectors
    If Parameter type as "CHAR" then value should be some Charecters and not NUM.
    Regards,
    Mastan

  • SSRS Calling a Stored Procedure error : PLS-00306: wrong number or types of arg...

    Hi,
    My Problem is when im adding dataset with stored procedure, im getting this error.
    I Can access database, 
    Could not create a list of fields for the query. Verify that you can connect to the data source and that your query syntax is correct.
    ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'PROCEDURE_NAME' ORA-06550: line 1, column 7: PL/SQL:
    Statement ignored
    stored procedure is simple select :
    CREATE OR REPLACE PROCEDURE [PROCEDURE_NAME](L_CURSOR out SYS_REFCURSOR)
    is
    Begin
    open L_CURSOR for
    SELECT [columnname] FROM
    [tablename]
    End;
    Configuration Details:
    DB: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64biOracle Developer Tools for Visual Studio Copyright (c) 2005,2014 SQL Server Data Tools Type: Oracle , Data Provider : .Net Framework Data Provider For Oracle

    The answer is of inside question. It is about provider. Change my provider ODTwithODAC for 10g (my database version). And problem resolved.
    Thank you for your helps,
    Regards,
    Arda

  • Crystal Report That Uses Stored Procedure Errors when connecting to the DB

    We had developed reports a few years ago, including one that calls a Stored Procedure on an iSeries AS400 DB2 database.  We upgraded our environments to Crystal Reports 2008 and BO XI 3.1.  Now, the existing report that previously ran in the old environment is not running (note that the other SQL-based reports work without a problem, only this one which uses a store procedure is not working).  I downloaded the report into my local Crystal Reports designer and tried to run it from there and I got the following error message:
    ======
    Failed to retieve data from the database.
    Details: ADO Error Code: 0x
    Source Microsoft OLE DB Provider for ODBC Drivers
    Description: [IBM][iSeries Access ODBC Driver] Statement violates access rule:  Connection is set to read only.
    SQL State: 37000
    Native Error: [Database Vendor Code: 30186 ]
    ======
    {CALL "<database>"."<library>"."RELEASEDNOTINVOICE"({d '2010-03-01'})}
    This call will still work from on a SQL client running on a JDBC connection.  Is there some problem with the new verion of BO and Crystal Reports with using the iSeries ODBC driver?

    ...my issue was resolved by setting the ODBC.INI registry entry for AllowProcCalls from 0 to 1.

  • ERP2005 SR3 Create SAP Stored Procedures Error

    Hi Seniors,
    I have tried to install SAP ERP ECC 6.0 IDES ERP2005 SR3 , I got the error in installation step 19/26 (Create SAP Stored Procedures).
    OS : WIN 2008 SERVER
    DB : MS SQL 2008
    I have fallow the Note 1152240.
    Error log :
    ERROR 2010-03-02 12:08:20.282
    FCO-00011  The step ExeProcs with step key |NW_Onehost|ind|ind|ind|ind|0|0|NW_Onehost_System|ind|ind|ind|ind|2|0|NW_CreateDBandLoad|ind|ind|ind|ind|10|0|NW_Postload|ind|ind|ind|ind|10|0|NW_Postload_MSS|ind|ind|ind|ind|2|0|MssProcs|ind|ind|ind|ind|1|0|ExeProcs was executed with status ERROR .
    Please help me, 
    Thank you,
    Sagar K

    > I have tried to install SAP ERP ECC 6.0 IDES ERP2005 SR3 , I got the error in installation step 19/26 (Create SAP Stored Procedures).
    >
    > OS : WIN 2008 SERVER
    > DB : MS SQL 2008
    See note 1244548 - IDES ERP 6.0 ECC 6.0 SR3:
    <...>
    Microsoft SQL Server 2008:
    An Installation of this IDES version on MSSQL 2008 is NOT possible.
    Please use MSSQL 2005 as database version
    <...>
    The reason is that the SAP_BASIS support package is too low.
    Markus

Maybe you are looking for

  • Sales order values not coming in copa report can been seen in ke24

    hi i have did sd and billing and actual settlement through va88 i can able to values in ke24 actual line items. but when i cant able to see values in ke30 copa report aganist sales order characteristic and aganist record type A values are not flowing

  • How to open and edit a DVD?

    I have two DVDs of a family event sent by two different people. DVDs made on domestic video recorders. I want to take out some stretches and edit the remaining pieces together. Could someone please take me by the hand and gently lead me through the p

  • I've lost my scrollbar in my inbox. how do I get it back

    I downloaded firefox 3.6 and now I've lost the vertical scrollbar on my inbox. How do I get it back. This seems to happen everytime I download a newer version.

  • Can't edit playlists that are in a subfolder - newest release

    Since applying 8.1.1 - I can no longer edit a playlist that is in a subfolder.  I use playlists extensively, really not fun .

  • Editing Access keys in ADF

    Hello All, There is a property called access keys in adf for each component, I am using access keys and i found that access keys can be used with a combination of keys like ALT+SHIFT+ 'access key assigned' . Like i have assigned access key 's' to any