• Tutorial
    • AWS
    • Oracle
    • WordPress
    • Azure DevOps
  • About me
Tutorial
    AWS
    Oracle
    Wordpress
    Azure DevOps
About me
cedricleruth - It's still magic even if you know how it's done
  • Tutorial
    • AWS
    • Oracle
    • WordPress
    • Azure DevOps
  • About me

How to fix Invalid column index SQLException in Oracle ADF?

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.

How to automatically select First value in ADF LOV inside a table?

Screenshots of and ADF View Object List of Value

When one of your attribute in your View Object is a List Of Values, ADF will add an unselected element that will be shown as the default value.
You will often be asked to have the first value being selected by default, to do that we need to add a function to the VO Implementation. (RowImplementation if the LOV is part of a table row)

Let’s see the following example of an ADF table with LOV on each line:

  • We have the VO that is used to display a table.
  • In this VO table, we have the NextStatus which is an LOV based on another VO (see http://www.awasthiashish.com/2015/02/adf-basics-set-multiple-lovs-on.html)
  • In the RowImpl.java we add the following function to return the first value if no value is already selected
  • In the Detail panel of the attribute add the following Default Value Expression: adf.object.defaultNextStatus()
  • In the Detail panel of the attribute set the refresh Expression Value to false to avoid picking the first value again in case of ppr/refresh

Screenshot of the Refresh Expression Value VO attribute option

Screenshot of the Refresh Expression Value VO attribute option

That’s it, the first value of the LOV will be automatically selected before display.

Want to be notified when there is more?

Get in touch:

Categories

  • AWS EC2
  • AWS Lambda
  • AWS S3
  • AWS Tutorials
  • Azure DevOps
  • Highlight
  • IT Architecture
  • Oracle ADF
  • Oracle Database
  • Oracle SOA Suite
  • Oracle Tutorials
  • Route53
  • Tutorials
  • Weblogic
  • Wordpress Tutorials

Read more about:

ADF Apache AWS Bean binding bpel Certificate cli cloud convert Database Deployment EC2 ERROR Exception file First Value GIT HTTPS Icons IllegalStateException iterator Java Jdevelopper lambda Oracle Oracle ADF Performance php programmatically RichTable route53 row S3 script sendRedirectforward soa sql SSL table View Criteria View Object VO weblogic WordPress