The java.sql.SQLException: Invalid column index often occurs in ADF when your ADF View Object(VO) get desynchronized while adding a new column to an existing Entity object(EO). After adding the new Table column to your Entity Object and View Object the following error occur at runtime :

java.sql.SQLException: Invalid column index
     at oracle.jdbc.driver.OracleResultSetImpl.getBytes(OracleResultSetImpl.java:1464)
     at weblogic.jdbc.wrapper.ResultSet_oracle_jdbc_driver_OracleResultSetImpl.getBytes(Unknown Source)
     at oracle.jbo.domain.Number$1facClass.createDatum(Number.java:107)
     at oracle.jbo.server.OracleSQLBuilderImpl.doLoadFromResultSet(OracleSQLBuilderImpl.java:1322)
     at oracle.jbo.server.AttributeDefImpl.loadFromResultSet(AttributeDefImpl.java:2439)
     at oracle.jbo.server.ViewRowImpl.populate(ViewRowImpl.java:3842)
     at oracle.jbo.server.ViewDefImpl.createInstanceFromResultSet(ViewDefImpl.java:2378)
     at oracle.jbo.server.ViewObjectImpl.createRowFromResultSet(ViewObjectImpl.java:6005)
     at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5834)
     at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3568)
     at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3423)
     at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2173)
     at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:5115)
     at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2935)

This error usually occurs when your View Object Query didn’t get updated while you added the new Entity Object Attribute. (Usually when you customized the View Object Query in Expert Mode)

To fix it you need to do the following steps :

  • In your Entity Object > Attributes, click on the green + Add Attribute from Table. Add your new Table Column
  • In your View Object > Attributes, click on the green + Add Attributes from Entity Object. Add you new Entity Attribute
  • In your View Object > Query, manually edit your Query to add the new Entity Attribute (YOUR_EO_NAME.YOUR_ATTRIBUTE_NAME)
  • Add your new attribute to your views

The error usually occur when you forget the 3rd step.