Support Article
Table mapping error Database Error : Database-TableWithNoColumns
SA-7482
Summary
Some externally mapped database tables are not recognized.
Error Messages
Database Error : Database-TableWithNoColumns MYSCHEMA.MYTABLE MYDB
HID28270DF0E07CFCB7677EE1F583C89618&pyActivity=LogOff&pzPrimaryPageName=pyDisplayHarness
2015-03-09 15:51:21,476 [fault (self-tuning)'] [TABTHREAD2] [ MYRULESET:01.01.01 ] (eDisplay.Rule_Obj_Class.Action) ERROR myappserver|MYCORP.COM MYUSER - Error occured while trying to check if the class is external Database-TableWithNoColumns MYSCHEMA.MYTABLE MYDB
2015-03-09 15:51:22,208 [fault (self-tuning)'] [TABTHREAD2] [ MYRULESET:01.01.01 ] (l.access.ConnectionManagerImpl) ERROR myappserver|MYCORP.COM MYUSER - Not returning connection 1 for database "MYDB" to the pool as it previously encountered the following error
User ID: MYUSER
Last SQL: SELECT count(*) as "pyCount" FROM MYSCHEMA.MYTABLE where pxObjClass = ‘FW-Data-Stream'
java.sql.SQLSyntaxErrorException: ORA-00904: "PXOBJCLASS": invalid identifier
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:447)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:951)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:513)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:227)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:208)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:886)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1175)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1288)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3613)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3714)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1378)
at weblogic.jdbc.wrapper.PreparedStatement.execute(PreparedStatement.java:99)
at com.pega.pegarules.data.internal.access.DatabasePreparedStatementImpl.execute(DatabasePreparedStatementImpl.java:576)
at com.pega.pegarules.data.internal.access.DatabaseImpl.list(DatabaseImpl.java:6003)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6473)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6429)
at com.pega.pegarules.data.internal.access.DatabaseImpl.executeRDB(DatabaseImpl.java:6410)
at com.pegarules.generated.activity.ra_action_onbeforedisplay_fcc84513f8d09b1f7b3f30d9c9e5f4a4.step1_circum0(ra_action_onbeforedisplay_fcc84513f8d09b1f7b3f30d9c9e5f4a4.java:254)
at com.pegarules.generated.activity.ra_action_onbeforedisplay_fcc84513f8d09b1f7b3f30d9c9e5f4a4.perform(ra_action_onbeforedisplay_fcc84513f8d09b1f7b3f30d9c9e5f4a4.java:69)
at com.pega.pegarules.session.internal.mgmt.Executable.doActivity(Executable.java:3375)
Steps to Reproduce
Create a external db table and map a class.
Root Cause
The root cause of this problem is defect/misconfiguration in the PRPC operating environment.
An invalid synonyms was defined on the table.
The following select
select owner, object_name, status, object_type from dba_objects where object_name in ('MYTABLE') and object_type = 'SYNONYM';
returns this result
TABLE_OWNER MYTABLE INVALID SYNONYM
Resolution
This issue is resolved by making the following change to the PRPC operating environment:
Delete the invalid synonym from DB.
Published January 31, 2016 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.