This discussion is archived
1 2 Previous Next 18 Replies Latest reply: May 23, 2012 1:03 AM by gimbal2 RSS

java.sql.SQLException: Internal error: Invalid index for data access

877802 Newbie
Currently Being Moderated
In the below code, at this line "attributeCode = rs.getString("attribute_code");" we are seeing this Exception : java.sql.SQLException: Internal error: Invalid index for data access.


1) Can anyone please let me know why this exception is coming from application ?


Below is the method we are using in one of class.
public static String getSecureWhereClause(Vector params, OADBTransaction tx, String attrCodeList)
    throws SQLException
  {
     FunctionSecurity funcSec = tx.getFunctionSecurity();
     Function homeFunc = funcSec.getFunction("POS_HOME");
     Function homeFunc2 = funcSec.getFunction("POS_IS_CP_HOME");
     Function homeFunc3 = funcSec.getFunction("POS_ISP_CP_SRC_HOME");
     Function homeFunc4 = funcSec.getFunction("POS_ISP_SRC_HOME");
     Function homeFunc5 = funcSec.getFunction("POS_INTERNAL_HOME");
     Function viewPOFunc = funcSec.getFunction("POS_VIEW_ORDER");
     
     Integer respId = new Integer(tx.getResponsibilityId());     
        if( respId == null || tx.getResponsibilityId()==0 || 
             !(funcSec.testFunction(homeFunc) || funcSec.testFunction(homeFunc2) 
                  || funcSec.testFunction(homeFunc3) || funcSec.testFunction(homeFunc4)
        || funcSec.testFunction(homeFunc5) || funcSec.testFunction(viewPOFunc)) 
             )
      return "null = null";
      
     String attributeCode = "";
     String secWhereClause = "";
     int userId  = tx.getUserId();
     CallableStatement statement1 = null;
     CallableStatement statement2 = null;
     ResultSet rs = null;
     ResultSet rs2 = null;

     String s1 =
    " SELECT distinct arsa.attribute_code " +
    " FROM   ak_resp_security_attributes arsa " +
    " WHERE  arsa.responsibility_id = ? " +
    " AND    arsa.attribute_application_id = 177";

     String s2 =
    " SELECT nvl(to_char(number_value), nvl(varchar2_value,to_char(date_value))) sec_value" +
    " FROM   ak_web_user_sec_attr_values " +
    " WHERE  web_user_id = ?" +
    " AND    attribute_code = ?" +
    " AND    attribute_application_id = 177" +
    " UNION "+
    " SELECT nvl(to_char(number_value), nvl(varchar2_value,to_char(date_value))) sec_value" +
    " FROM AK_RESP_SECURITY_ATTR_VALUES " +
    " WHERE responsibility_id = ?" +
    " AND attribute_application_id = 177" +
    " AND attribute_code = ?" +
    " AND number_value = -9999 " +
    " ORDER BY sec_value ";

  try {
    statement1 = tx.createCallableStatement(s1, 1);
    statement1.setInt(1, tx.getResponsibilityId());
     statement1.registerOutParameter(2, java.sql.Types.VARCHAR);
    rs = statement1.executeQuery();

    while (rs.next()) {
      String columnName = "";
      attributeCode = rs.getString("attribute_code");
      if (attributeCode != null) {
        if ((attributeCode.equals("ICX_SUPPLIER_ORG_ID")) && (attrCodeList.indexOf("VENDOR_ID") != -1))
          columnName = "VENDOR_ID";
        else if ((attributeCode.equals("ICX_SUPPLIER_CONTACT_ID")) && (attrCodeList.indexOf("VENDOR_CONTACT_ID") != -1))
          columnName = "VENDOR_CONTACT_ID";
        else if ((attributeCode.equals("ICX_SUPPLIER_SITE_ID")) && (attrCodeList.indexOf("VENDOR_SITE_ID") != -1))
          columnName = "VENDOR_SITE_ID";

       if (columnName != "") {
        String valueList = "";
        String secValue = "";

        statement2 = tx.createCallableStatement(s2, 1);
        statement2.setInt(1, userId);
        statement2.setString(2, attributeCode);
        statement2.setInt(3, tx.getResponsibilityId());
        statement2.setString(4, attributeCode);
          statement2.registerOutParameter(5, java.sql.Types.VARCHAR);
        statement2.registerOutParameter(6, java.sql.Types.VARCHAR);
        rs2 = statement2.executeQuery();

        boolean rs2_null = true;
        int count = 0;
        Vector tempVec = new Vector();
        while (rs2.next()) {
          secValue = rs2.getString("sec_value");
          if (secValue != null && secValue != "") {
            rs2_null = false;
            if (!secValue.equals("-9999")) {
              //tempVec.addElement(secValue); 
              try{
                Number numVal = new Number(Integer.parseInt(secValue));
                tempVec.addElement(numVal); 
              }
              catch(Exception e){
                tempVec.addElement(secValue); 
              }
            }
            count++; 
          } // end if (secValue != null && secValue != "")
          
          if (count >= 254)  break; 
        } // end while (rs2.next())

        if (count < 254) {
          for (int i = 0; i < tempVec.size(); i++) {
             params.addElement(tempVec.elementAt(i));
             if (valueList == "")
               valueList += ":" + params.size();
             else
               valueList += ", :" + params.size();
          } // end for

          if (rs2_null){
               if (!secWhereClause.equals(""))
                     secWhereClause += " AND ";
                secWhereClause += columnName + " = null";
          } // end if (rs2_null)

          if (valueList != "") {
            if (!secWhereClause.equals(""))
              secWhereClause += " AND ";
            secWhereClause += columnName + " in (" + valueList + ")";
          } // end if (valueList != "")
        } // end  if (count < 254)

        else { // Bug 2716672, if more than 254 values, we use select statement instead of value list 
          params.addElement(Integer.toString(userId));
          params.addElement(attributeCode);
          
          String s3 =
            " SELECT nvl(to_char(number_value), nvl(varchar2_value,to_char(date_value))) " +
            " FROM   ak_web_user_sec_attr_values " +
            " WHERE  web_user_id = :" + (params.size() - 1) + 
            " AND    attribute_code = :" + params.size() + 
            " AND    attribute_application_id = 177 ";

          if (!secWhereClause.equals(""))
            secWhereClause += " AND ";
          secWhereClause += columnName + " in (" + s3 + ")";
        } // end else 

        //fix for cursor leaks
        //close CallableStatement and ResultSet inside the loop
        try {
          if (rs2 != null) rs2.close();
          if (statement2 != null) statement2.close();
        }
        catch (Exception e) {
           e.printStackTrace();
        }

       } // end  if (columnName != "")
     } // end if (attributeCode != null)
    } // end while (rs.next())
  } // end try
  catch (Exception e) {
    e.printStackTrace();
  }
Edited by: 874799 on May 22, 2012 1:46 PM
  • 1. Re: java.sql.SQLException: Internal error: Invalid index for data access
    877802 Newbie
    Currently Being Moderated
    Please let us know for the above snippet we need to go for CallableStatement or PreparedStatement(...) ?
  • 2. Re: java.sql.SQLException: Internal error: Invalid index for data access
    rp0428 Guru
    Currently Being Moderated
    >
    statement1.registerOutParameter(2, java.sql.Types.VARCHAR);
    >
    Why are you registering an OUT parameter for a SELECT statement?
  • 3. Re: java.sql.SQLException: Internal error: Invalid index for data access
    877802 Newbie
    Currently Being Moderated
    Even after commenting out the registering an OUT parameter statement, we are seeing the same exception,

    Could you please let us know why this exception is coming ?

    Edited by: 874799 on May 22, 2012 10:47 AM
  • 4. Re: java.sql.SQLException: Internal error: Invalid index for data access
    gimbal2 Guru
    Currently Being Moderated
    You're ignoring the most valuable piece of information: the exception stacktrace. Why don't you examine it and figure out which line of your code is exactly throwing the given exception. That is more helpful then just dumping all the code unformatted. And be sure to share that information of course.

    And that is step 2: repost the code, this time between \
     tags to actually make it readable. Don't just copy paste from your first post as it doesn't have any formatting as it is now.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
  • 5. Re: java.sql.SQLException: Internal error: Invalid index for data access
    877802 Newbie
    Currently Being Moderated
    For the below line, it is throwing the below exception :
     attributeCode = rs.getString("attribute_code"); 
    Stack Trace:
    -------------------
    -------------------------------
    Thu May 10 22:36:13 PDT 2012
    -------------------------------
    java.sql.SQLException: Internal error: Invalid index for data access
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
         at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
         at oracle.jdbc.dbaccess.DBData.checkItemNumber(DBData.java:398)
         at oracle.jdbc.dbaccess.DBData.getItem(DBData.java:347)
         at oracle.jdbc.dbaccess.DBDataSetImpl.getCharsItem(DBDataSetImpl.java:1514)
         at oracle.jdbc.driver.OracleStatement.getCharsInternal(OracleStatement.java:3637)
         at oracle.jdbc.driver.OracleStatement.getStringValue(OracleStatement.java:3841)
         at oracle.jdbc.driver.OracleResultSetImpl.getString(OracleResultSetImpl.java:460)
         at oracle.jdbc.driver.OracleResultSet.getString(OracleResultSet.java:1549)
         at oracle.apps.pos.isp.server.PosServerUtil.getSecureWhereClause(PosServerUtil.java:261)
         at oracle.apps.pos.isp.webui.PosHpageTopCO.processRequest(PosHpageTopCO.java:311)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:587)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.layout.OAFlowLayoutBean.processRequest(OAFlowLayoutBean.java:351)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.layout.OAStackLayoutBean.processRequest(OAStackLayoutBean.java:350)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processRequest(OAPageLayoutHelper.java:1136)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processRequest(OAPageLayoutBean.java:1569)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processRequest(OAFormBean.java:385)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:959)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequestChildren(OAWebBeanHelper.java:926)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processRequest(OAWebBeanHelper.java:646)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processRequest(OAWebBeanContainerHelper.java:247)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processRequest(OABodyBean.java:353)
         at oracle.apps.fnd.framework.webui.OAPageBean.processRequest(OAPageBean.java:2360)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1759)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:511)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:432)
         at _oa__html._OA._jspService(_OA.java:84)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
         at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
         at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
         at oracle.jsp.JspServlet.service(JspServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
         at oracle.jsp.provider.Jsp20RequestDispatcher.forward(Jsp20RequestDispatcher.java:162)
         at oracle.jsp.runtime.OraclePageContext.forward(OraclePageContext.java:187)
         at _oa__html._RF._jspService(_RF.java:102)
         at oracle.jsp.runtime.HttpJsp.service(HttpJsp.java:119)
         at oracle.jsp.app.JspApplication.dispatchRequest(JspApplication.java:417)
         at oracle.jsp.JspServlet.doDispatch(JspServlet.java:267)
         at oracle.jsp.JspServlet.internalService(JspServlet.java:186)
         at oracle.jsp.JspServlet.service(JspServlet.java:156)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:588)
         at org.apache.jserv.JServConnection.processRequest(JServConnection.java:456)
         at org.apache.jserv.JServConnection.run(JServConnection.java:294)
         at java.lang.Thread.run(Thread.java:534)
    public static String getSecureWhereClause(Vector params, OADBTransaction tx, String attrCodeList)
        throws SQLException
      {
         FunctionSecurity funcSec = tx.getFunctionSecurity();
         Function homeFunc = funcSec.getFunction("POS_HOME");
         Function homeFunc2 = funcSec.getFunction("POS_IS_CP_HOME");
         Function homeFunc3 = funcSec.getFunction("POS_ISP_CP_SRC_HOME");
         Function homeFunc4 = funcSec.getFunction("POS_ISP_SRC_HOME");
         Function homeFunc5 = funcSec.getFunction("POS_INTERNAL_HOME");
         Function viewPOFunc = funcSec.getFunction("POS_VIEW_ORDER");
         
         Integer respId = new Integer(tx.getResponsibilityId());     
            if( respId == null || tx.getResponsibilityId()==0 || 
                 !(funcSec.testFunction(homeFunc) || funcSec.testFunction(homeFunc2) 
                      || funcSec.testFunction(homeFunc3) || funcSec.testFunction(homeFunc4)
            || funcSec.testFunction(homeFunc5) || funcSec.testFunction(viewPOFunc)) 
                 )
          return "null = null";
          
         String attributeCode = "";
         String secWhereClause = "";
         int userId  = tx.getUserId();
         CallableStatement statement1 = null;
         CallableStatement statement2 = null;
         ResultSet rs = null;
         ResultSet rs2 = null;
    
         String s1 =
        " SELECT distinct arsa.attribute_code " +
        " FROM   ak_resp_security_attributes arsa " +
        " WHERE  arsa.responsibility_id = ? " +
        " AND    arsa.attribute_application_id = 177";
    
         String s2 =
        " SELECT nvl(to_char(number_value), nvl(varchar2_value,to_char(date_value))) sec_value" +
        " FROM   ak_web_user_sec_attr_values " +
        " WHERE  web_user_id = ?" +
        " AND    attribute_code = ?" +
        " AND    attribute_application_id = 177" +
        " UNION "+
        " SELECT nvl(to_char(number_value), nvl(varchar2_value,to_char(date_value))) sec_value" +
        " FROM AK_RESP_SECURITY_ATTR_VALUES " +
        " WHERE responsibility_id = ?" +
        " AND attribute_application_id = 177" +
        " AND attribute_code = ?" +
        " AND number_value = -9999 " +
        " ORDER BY sec_value ";
    
      try {
        statement1 = tx.createCallableStatement(s1, 1);
        statement1.setInt(1, tx.getResponsibilityId());
         statement1.registerOutParameter(2, java.sql.Types.VARCHAR);
        rs = statement1.executeQuery();
    
        while (rs.next()) {
          String columnName = "";
          attributeCode = rs.getString("attribute_code");
          if (attributeCode != null) {
            if ((attributeCode.equals("ICX_SUPPLIER_ORG_ID")) && (attrCodeList.indexOf("VENDOR_ID") != -1))
              columnName = "VENDOR_ID";
            else if ((attributeCode.equals("ICX_SUPPLIER_CONTACT_ID")) && (attrCodeList.indexOf("VENDOR_CONTACT_ID") != -1))
              columnName = "VENDOR_CONTACT_ID";
            else if ((attributeCode.equals("ICX_SUPPLIER_SITE_ID")) && (attrCodeList.indexOf("VENDOR_SITE_ID") != -1))
              columnName = "VENDOR_SITE_ID";
    
           if (columnName != "") {
            String valueList = "";
            String secValue = "";
    
            statement2 = tx.createCallableStatement(s2, 1);
            statement2.setInt(1, userId);
            statement2.setString(2, attributeCode);
            statement2.setInt(3, tx.getResponsibilityId());
            statement2.setString(4, attributeCode);
              statement2.registerOutParameter(5, java.sql.Types.VARCHAR);
            statement2.registerOutParameter(6, java.sql.Types.VARCHAR);
            rs2 = statement2.executeQuery();
    
            boolean rs2_null = true;
            int count = 0;
            Vector tempVec = new Vector();
            while (rs2.next()) {
              secValue = rs2.getString("sec_value");
              if (secValue != null && secValue != "") {
                rs2_null = false;
                if (!secValue.equals("-9999")) {
                  //tempVec.addElement(secValue); 
                  try{
                    Number numVal = new Number(Integer.parseInt(secValue));
                    tempVec.addElement(numVal); 
                  }
                  catch(Exception e){
                    tempVec.addElement(secValue); 
                  }
                }
                count++; 
              } // end if (secValue != null && secValue != "")
              
              if (count >= 254)  break; 
            } // end while (rs2.next())
    
            if (count < 254) {
              for (int i = 0; i < tempVec.size(); i++) {
                 params.addElement(tempVec.elementAt(i));
                 if (valueList == "")
                   valueList += ":" + params.size();
                 else
                   valueList += ", :" + params.size();
              } // end for
    
              if (rs2_null){
                   if (!secWhereClause.equals(""))
                         secWhereClause += " AND ";
                    secWhereClause += columnName + " = null";
              } // end if (rs2_null)
    
              if (valueList != "") {
                if (!secWhereClause.equals(""))
                  secWhereClause += " AND ";
                secWhereClause += columnName + " in (" + valueList + ")";
              } // end if (valueList != "")
            } // end  if (count < 254)
    
            else { // Bug 2716672, if more than 254 values, we use select statement instead of value list 
              params.addElement(Integer.toString(userId));
              params.addElement(attributeCode);
              
              String s3 =
                " SELECT nvl(to_char(number_value), nvl(varchar2_value,to_char(date_value))) " +
                " FROM   ak_web_user_sec_attr_values " +
                " WHERE  web_user_id = :" + (params.size() - 1) + 
                " AND    attribute_code = :" + params.size() + 
                " AND    attribute_application_id = 177 ";
    
              if (!secWhereClause.equals(""))
                secWhereClause += " AND ";
              secWhereClause += columnName + " in (" + s3 + ")";
            } // end else 
    
            //fix for cursor leaks
            //close CallableStatement and ResultSet inside the loop
            try {
              if (rs2 != null) rs2.close();
              if (statement2 != null) statement2.close();
            }
            catch (Exception e) {
               e.printStackTrace();
            }
    
           } // end  if (columnName != "")
         } // end if (attributeCode != null)
        } // end while (rs.next())
      } // end try
      catch (Exception e) {
        e.printStackTrace();
      }
      finally {
        try {
          if (rs2 != null) rs2.close();
          if (rs != null) rs.close();
          if (statement1 != null) statement1.close();
          if (statement2 != null) statement2.close();
        }
        catch (Exception e) {
           e.printStackTrace();
        }
      }
    
      if (secWhereClause == null || secWhereClause.trim().length() == 0)
        return " null = null ";
      else
        return secWhereClause;
     }
  • 6. Re: java.sql.SQLException: Internal error: Invalid index for data access
    rp0428 Guru
    Currently Being Moderated
    >
    Even after commenting out the registering an OUT parameter statement
    >
    The question was why you are using an OUT for a SELECT. I didn't say comment it out.

    What are the Java and JDBC jar versions?
  • 7. Re: java.sql.SQLException: Internal error: Invalid index for data access
    877802 Newbie
    Currently Being Moderated
    I am registering the output parameter

    JDBC Version "jdbc14.jar"
    java version "1.4.2_14"
  • 8. Re: java.sql.SQLException: Internal error: Invalid index for data access
    gimbal2 Guru
    Currently Being Moderated
    874799 wrote:
    I am registering the output parameter
    The question was WHY. Why do you think you need to do that?


    For the below line, it is throwing the below exception :
    attributeCode = rs.getString("attribute_code");
    Hm, I think that is a red herring; probably the fact that this is the first statement that actually tries to fetch something is causing the internal problem. I would try removing ALL output parameter registrations from the code (because there are multiple) and try again.
  • 9. Re: java.sql.SQLException: Internal error: Invalid index for data access
    877802 Newbie
    Currently Being Moderated
    Thank you for your reply.

    I don't know, that code is written by other people, who are not there.

    We tried in both ways with registering and without registering output parameters and in both cases, we are seeing this exception.

    Can you tell me one thing, for a simple sql statement, where we are not calling any procedure or function, can we use Callable Statement ?

    Is there any problem if we use Callable Statement ?
  • 10. Re: java.sql.SQLException: Internal error: Invalid index for data access
    gimbal2 Guru
    Currently Being Moderated
    callable statements are for invoking procedures, not queries. If you want to invoke queries, use a prepared statement.

    ... wow, I totally didn't see that callable statements were being used :s
  • 11. Re: java.sql.SQLException: Internal error: Invalid index for data access
    Joe Weinstein Expert
    Currently Being Moderated
    There should be no harm in using a callable statement, even if there are no
    output parameters in the SQL. By spec, a CallableStatement is a
    PreparedStatement. There is nothing in the spec that has the
    CallableStatement overriding the behavior of any parent methods. But the
    code is broken, because it registers output parameters for queries.
  • 12. Re: java.sql.SQLException: Internal error: Invalid index for data access
    877802 Newbie
    Currently Being Moderated
    Could you please clarify me some more questions :

    Let us take same query which are using in 2 different styles :


    1) SELECT USER_NAME FROM USER_MASTER WHERE USER_ID=:1


    2) SELECT USER_NAME into :1 FROM USER_MASTER WHERE USER_ID = :2

    Using a CallableStatement(...) i am execute above two queries, can you tell me when we need to use registerOutParameter(...) method to register a output parameter.

    Please let me know why we need to use registerOutPutParameter(...) and why not for other query ?

    Please share the spec on this CallableStatement and also for registerOutputParameter(...)

    Please confirm that above metioned exception is coming because of registerOutputParameter(...) method ?

    Thanks,
    Niranjan Ch.
  • 13. Re: java.sql.SQLException: Internal error: Invalid index for data access
    Joe Weinstein Expert
    Currently Being Moderated
    I'm not a PL-SQL expert, but if you want to return data to the client, only use the
    first SQL form. The second seems to be a scrap of code that would be in a procedure
    to set a local variable. I may be wrong but there is no need to use that form.
    Output parameters are for stored procedure calls only. CallableStatements are only
    necessary for calling stored procedures that have output parameters.
  • 14. Re: java.sql.SQLException: Internal error: Invalid index for data access
    877802 Newbie
    Currently Being Moderated
    Thanks Joe, for your quick reply.

    Can you please share the spec about CallableStatement() and also let me know why exception is coming ?

    Please don't mind in asking once again.
1 2 Previous Next

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points