Skip to Main Content

Integration

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Invalid Column Name with 903 JDBC driver

12525Nov 12 2002
My TopLink based application works fine with the Oracle JDBC drivers that shipped with JDeveloper 9.0.2. However it fails INSERTS with the drivers that came with JDev 9.0.3. With TopLink session logging on I see that the TopLink generated SQL INSERTs are the same for the 902 drivers and the 903 drivers. The difference is that with the 903 drivers I get an ORA-00904 'invalid column name' exception.

Environment: TopLink 903, Windows 2000, JDK 1.3.1_02, JRE: OJVM (from jdev 903)

Here's an example:
LOCAL EXCEPTION STACK: 
EXCEPTION [TOPLINK-4002] (TopLink - 9.0.3 (Build 423)): oracle.toplink.exceptions.DatabaseException
EXCEPTION DESCRIPTION: java.sql.SQLException: ORA-00904: invalid column name

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

ERROR CODE: 904
	void oracle.toplink.exceptions.TopLinkException.<init>(java.lang.String, java.lang.Exception)
	void oracle.toplink.exceptions.DatabaseException.<init>(java.sql.SQLException)
	oracle.toplink.exceptions.DatabaseException oracle.toplink.exceptions.DatabaseException.sqlException(java.sql.SQLException, oracle.toplink.internal.databaseaccess.Accessor)
	java.lang.Integer oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(java.sql.PreparedStatement, oracle.toplink.publicinterface.Session)
	java.lang.Integer oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeNoSelect(oracle.toplink.internal.databaseaccess.DatabaseCall, java.sql.PreparedStatement, oracle.toplink.publicinterface.Session)
	java.lang.Object oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(oracle.toplink.queryframework.Call, oracle.toplink.publicinterface.DatabaseRow, oracle.toplink.publicinterface.Session)
	java.lang.Object oracle.toplink.publicinterface.UnitOfWork.executeCall(oracle.toplink.queryframework.Call, oracle.toplink.publicinterface.DatabaseRow, oracle.toplink.queryframework.DatabaseQuery)
	java.lang.Object oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(oracle.toplink.internal.databaseaccess.DatabaseCall)
	java.lang.Object oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall()
	void oracle.toplink.internal.queryframework.CallQueryMechanism.insertObject()
	void oracle.toplink.internal.queryframework.StatementQueryMechanism.insertObject()
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite()
	void oracle.toplink.queryframework.InsertObjectQuery.executeCommit()
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedWrite(oracle.toplink.queryframework.WriteObjectQuery)
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedInsert()
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite()
	void oracle.toplink.queryframework.WriteObjectQuery.executeCommit()
	java.lang.Object oracle.toplink.internal.queryframework.DatabaseQueryMechanism.executeWrite()
	java.lang.Object oracle.toplink.queryframework.WriteObjectQuery.execute()
	java.lang.Object oracle.toplink.queryframework.DatabaseQuery.execute(oracle.toplink.publicinterface.Session, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.Session.internalExecuteQuery(oracle.toplink.queryframework.DatabaseQuery, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(oracle.toplink.queryframework.DatabaseQuery, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.Session.executeQuery(oracle.toplink.queryframework.DatabaseQuery, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.Session.executeQuery(oracle.toplink.queryframework.DatabaseQuery)
	void oracle.toplink.internal.sessions.CommitManager.commitAllObjects(oracle.toplink.internal.helper.IdentityHashtable)
	void oracle.toplink.publicinterface.Session.writeAllObjects(oracle.toplink.internal.helper.IdentityHashtable)
	void oracle.toplink.publicinterface.UnitOfWork.commitToDatabase()
	void oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork()
	void oracle.toplink.publicinterface.UnitOfWork.commit()
	void com.metalsa.orator.fprs.db.RepositoryTransactionTLImpl.commit()
		RepositoryTransactionTLImpl.java:45
	void com.metalsa.orator.fprs.db.RepositoryManagedTransactionPolicy.endOperation()
		AbstractRepository.java:114
	void com.metalsa.orator.fprs.db.AbstractRepository.endOperation()
		AbstractRepository.java:63
	java.util.List com.metalsa.orator.fprs.db.errors.ErrorReposTLImpl.getErrors(java.lang.String, java.lang.String)
		ErrorReposTLImpl.java:117
	void com.metalsa.orator.fprs.db.errors.ErrorReposTLImpl.deleteErrors(java.lang.String, java.lang.String)
		ErrorReposTLImpl.java:221
	void com.metalsa.orator.fprs.db.errors.ErrorReposTest.testInsertErrors()
		ErrorReposTest.java:171
		native code
		TestCase.java:166
		TestCase.java:139
		TestResult.java:106
		TestResult.java:123
		TestResult.java:109
		TestCase.java:131
		TestSuite.java:173
		TestSuite.java:168
		TestSuite.java:173
		TestSuite.java:168
		TestRunner.java:644

INTERNAL EXCEPTION STACK: 
java.sql.SQLException: ORA-00904: invalid column name

	void oracle.jdbc.dbaccess.DBError.throwSqlException(java.lang.String, java.lang.String, int)
		DBError.java:187
	void oracle.jdbc.ttc7.TTIoer.processError()
		TTIoer.java:241
	void oracle.jdbc.ttc7.Oall7.receive()
		Oall7.java:543
	void oracle.jdbc.ttc7.TTC7Protocol.doOall7(byte, byte, int, byte[], oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int, oracle.jdbc.dbaccess.DBType[], oracle.jdbc.dbaccess.DBData[], int)
		TTC7Protocol.java:1477
	int oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(oracle.jdbc.dbaccess.DBStatement, byte, byte[], oracle.jdbc.dbaccess.DBDataSet, int, oracle.jdbc.dbaccess.DBDataSet, int)
		TTC7Protocol.java:888
	void oracle.jdbc.driver.OracleStatement.executeNonQuery(boolean)
		OracleStatement.java:2004
	void oracle.jdbc.driver.OracleStatement.doExecuteOther(boolean)
		OracleStatement.java:1924
	void oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout()
		OracleStatement.java:2562
	int oracle.jdbc.driver.OraclePreparedStatement.executeUpdate()
		OraclePreparedStatement.java:452
	java.lang.Integer oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeDirectNoSelect(java.sql.PreparedStatement, oracle.toplink.publicinterface.Session)
	java.lang.Integer oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeNoSelect(oracle.toplink.internal.databaseaccess.DatabaseCall, java.sql.PreparedStatement, oracle.toplink.publicinterface.Session)
	java.lang.Object oracle.toplink.internal.databaseaccess.DatabaseAccessor.executeCall(oracle.toplink.queryframework.Call, oracle.toplink.publicinterface.DatabaseRow, oracle.toplink.publicinterface.Session)
	java.lang.Object oracle.toplink.publicinterface.UnitOfWork.executeCall(oracle.toplink.queryframework.Call, oracle.toplink.publicinterface.DatabaseRow, oracle.toplink.queryframework.DatabaseQuery)
	java.lang.Object oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall(oracle.toplink.internal.databaseaccess.DatabaseCall)
	java.lang.Object oracle.toplink.internal.queryframework.CallQueryMechanism.executeCall()
	void oracle.toplink.internal.queryframework.CallQueryMechanism.insertObject()
	void oracle.toplink.internal.queryframework.StatementQueryMechanism.insertObject()
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite()
	void oracle.toplink.queryframework.InsertObjectQuery.executeCommit()
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedWrite(oracle.toplink.queryframework.WriteObjectQuery)
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.performUserDefinedInsert()
	void oracle.toplink.internal.queryframework.DatabaseQueryMechanism.insertObjectForWrite()
	void oracle.toplink.queryframework.WriteObjectQuery.executeCommit()
	java.lang.Object oracle.toplink.internal.queryframework.DatabaseQueryMechanism.executeWrite()
	java.lang.Object oracle.toplink.queryframework.WriteObjectQuery.execute()
	java.lang.Object oracle.toplink.queryframework.DatabaseQuery.execute(oracle.toplink.publicinterface.Session, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.Session.internalExecuteQuery(oracle.toplink.queryframework.DatabaseQuery, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(oracle.toplink.queryframework.DatabaseQuery, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.Session.executeQuery(oracle.toplink.queryframework.DatabaseQuery, oracle.toplink.publicinterface.DatabaseRow)
	java.lang.Object oracle.toplink.publicinterface.Session.executeQuery(oracle.toplink.queryframework.DatabaseQuery)
	void oracle.toplink.internal.sessions.CommitManager.commitAllObjects(oracle.toplink.internal.helper.IdentityHashtable)
	void oracle.toplink.publicinterface.Session.writeAllObjects(oracle.toplink.internal.helper.IdentityHashtable)
	void oracle.toplink.publicinterface.UnitOfWork.commitToDatabase()
	void oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork()
	void oracle.toplink.publicinterface.UnitOfWork.commit()
	void com.metalsa.orator.fprs.db.RepositoryTransactionTLImpl.commit()
		RepositoryTransactionTLImpl.java:45
	void com.metalsa.orator.fprs.db.RepositoryManagedTransactionPolicy.endOperation()
		AbstractRepository.java:114
	void com.metalsa.orator.fprs.db.AbstractRepository.endOperation()
		AbstractRepository.java:63
	java.util.List com.metalsa.orator.fprs.db.errors.ErrorReposTLImpl.getErrors(java.lang.String, java.lang.String)
		ErrorReposTLImpl.java:117
	void com.metalsa.orator.fprs.db.errors.ErrorReposTLImpl.deleteErrors(java.lang.String, java.lang.String)
		ErrorReposTLImpl.java:221
	void com.metalsa.orator.fprs.db.errors.ErrorReposTest.testInsertErrors()
		ErrorReposTest.java:171
		native code
		TestCase.java:166
		TestCase.java:139
		TestResult.java:106
		TestResult.java:123
		TestResult.java:109
		TestCase.java:131
		TestSuite.java:173
		TestSuite.java:168
		TestSuite.java:173
		TestSuite.java:168
		TestRunner.java:644
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 16 2002
Added on Nov 12 2002
10 comments
643 views