"Invalid column name" inserting a row with weblogic/oracle

From: bsaastad (member45644_at_dbforums.com)
Date: 10/25/03

  • Next message: Joe Weinstein: "Re: "Invalid column name" inserting a row with weblogic/oracle"
    Date: 24 Oct 2003 23:10:48 GMT
    
    

    Hello,

    Environment

    Weblogic 8.1, Oracle 9.0.1, JDK1.4

    I am attempting to migrate from WLS 6.1 to WLS 8.1. All appears to work
    with the exception of database inserts. They ALWAYS fail and return an
    "ORA-00904: invalid column name". I am connecting to the database via a
    pooled data source. This code worked fine under WLS6.1 using the
    Weblogic JDriver. The JDriver performs the inserts under 8.1 but the
    Statement.executeBatch() command returns a 0-length int[] (an
    acknowledged bug in the JDriver.) BEA says to use the drivers supplied
    by Oracle. I have tried both the type 4 driver and the type 2 oci
    driver with exactly the same result.

    I can query the database via the connection and dump the contents of the
    queried row along with the column names using the ResultMetaData.

    ex.

                ResultSet rs = stmt.executeQuery( sqlCmd );

                ResultSetMetaData rsmd = rs.getMetaData();

                System.out.println( "Results of '" + sqlCmd + "'");

                while ( rs.next() )

                {

                    for( int i = 1; i <= rsmd.getColumnCount(); i++)

                    {

                        System.out.println( "'" + rsmd.getColumnName(i) +
                        "=" + rs.getString( i ) + "' " );

                    }

                }

    .. produces:

    Results of 'SELECT POOL_ID, POOL_NM, POOL_DESC, REV_BY, REV_DT FROM
    POOL_R WHERE POOL_ID = 11'

    'POOL_ID=11'

    'POOL_NM=COMM'

    'POOL_DESC=Communications Servers'

    'REV_BY=saastabp'

    'REV_DT=2002-12-16'

    Then when I turn around and try to insert a row like this:

    String sqlCmd = "INSERT INTO POOL_R (POOL_ID, POOL_NM, POOL_DESC,
    REV_BY, REV_DT) VALUES (100, 'FRED', 'TEST POOL NAME FOR FRED', 'test-
    user', {ts '2003-10-24 16:00:26.703'})";

    System.out.println( "[" + sqlCmd + "]");

    stmt.executeUpdate( sqlCmd);

    .. I get the exception below. Has anyone seen this before? Any ideas?

    Thanks,

    -Brian

    [INSERT INTO POOL_R (POOL_ID, POOL_NM, POOL_DESC, REV_BY, REV_DT) VALUES
    (100, 'FRED', 'TEST POOL NAME FOR FRED', 'test-user', {ts '2003-10-24
    16:00:26.703'})]

    java.sql.SQLException: ORA-00904: invalid column name

            at weblogic.rjvm.BasicOutboundRequest.sendReceive(BasicOutbound-
            Request.java:108)

            at weblogic.rmi.internal.BasicRemoteRef.invoke(BasicRemoteRef-
            .java:138)

            at weblogic.jdbc.rmi.internal.StatementImpl_weblogic_jdbc_wrapp-
            er_Statement_oracle_jdbc_driver_OracleStatement_811_WLStub.exec-
            uteUpdate(Unknown Source)

            at weblogic.jdbc.rmi.internal.StatementStub_weblogic_jdbc_rm-
            i_internal_StatementImpl_weblogic_jdbc_wrapper_Statement_ora-
            cle_jdbc_driver_OracleStatement_811_WLStub.executeUpdate(Unk-
            nown Source)

            at weblogic.jdbc.rmi.SerialStatement_weblogic_jdbc_rmi_internal-
            _StatementStub_weblogic_jdbc_rmi_internal_StatementImpl_weblogi-
            c_jdbc_wrapper_Statement_oracle_jdbc_driver_OracleStatement_811-
            _WLStub.executeUpdate(Unknown Source)

            at com.billing.tm.persist.BatchTest.doInsert(BatchTest.java:93)

            at com.billing.tm.persist.BatchTest.main(BatchTest.java:185)

    Caused by: java.sql.SQLException: ORA-00904: invalid column name

            at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError-
            .java:134)

            at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)

            at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:579)

            at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1894)

            at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol-
            .java:1094)

            at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleSta-
            tement.java:2132)

            at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStat-
            ement.java:2015)

            at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Orac-
            leStatement.java:2877)

            at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleState-
            ment.java:858)

            at weblogic.jdbc.wrapper.Statement.executeUpdate(Statement-
            .java:328)

            at weblogic.jdbc.rmi.internal.StatementImpl_weblogic_jdbc_wrapp-
            er_Statement_oracle_jdbc_driver_OracleStatement.executeUpdate(U-
            nknown Source)

            at weblogic.jdbc.rmi.internal.StatementImpl_weblogic_jdbc_wrapp-
            er_Statement_oracle_jdbc_driver_OracleStatement_WLSkel.invoke(U-
            nknown Source)

            at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef-
            .java:466)

            at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef-
            .java:409)

            at weblogic.security.acl.internal.AuthenticatedSubject.doAs(Aut-
            henticatedSubject.java:353)

            at weblogic.security.service.SecurityManager.runAs(SecurityMana-
            ger.java:144)

            at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServ-
            erRef.java:404)

            at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecu-
            teRequest.java:30)

            at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java)

            at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

    --
    Posted via http://dbforums.com
    

  • Next message: Joe Weinstein: "Re: &quot;Invalid column name&quot; inserting a row with weblogic/oracle"

    Relevant Pages