futureExpert
futureExpert

Reputation: 55

jdbc.BadSqlGrammarException table or view does not exist. Tested query in database, works. But web application errors

EDIT: FIXED! Look below

So I have tested the query in SQL Developer and it works fine. However, in my implementation, the run does not load the data into the list and spits out this error:

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [select columnname,displayname, viewsortorder,capsdisind,window, DIS FIELDID , (select 1 from WEB_CUSTDISABLEDFIELDS where custid =? AND A.DISFIELD ID = WEB_CUSTDISABLEDFIELDS.DISFIELDID) from web_DISABLEDFIELDS A ]; nested ex ception is java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.d oTranslate(SQLErrorCodeSQLExceptionTranslator.java:220) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslat or.translate(AbstractFallbackSQLExceptionTranslator.java:72) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java: 607) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:64 1) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:67 0) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:67 8) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:71 0) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at flex.messaging.services.remoting.adapters.JavaAdapter.invoke(JavaAdap ter.java:421) at flex.messaging.services.RemotingService.serviceMessage(RemotingServic e.java:183) at flex.messaging.MessageBroker.routeMessageToService(MessageBroker.java :1503) at flex.messaging.endpoints.AbstractEndpoint.serviceMessage(AbstractEndp oint.java:884) at flex.messaging.endpoints.amf.MessageBrokerFilter.invoke(MessageBroker Filter.java:121) at flex.messaging.endpoints.amf.LegacyFilter.invoke(LegacyFilter.java:15 8) at flex.messaging.endpoints.amf.SessionFilter.invoke(SessionFilter.java: 44) at flex.messaging.endpoints.amf.BatchProcessFilter.invoke(BatchProcessFi lter.java:67) at flex.messaging.endpoints.amf.SerializationFilter.invoke(Serialization Filter.java:146) at flex.messaging.endpoints.BaseHTTPEndpoint.service(BaseHTTPEndpoint.ja va:278) at flex.messaging.MessageBrokerServlet.service(MessageBrokerServlet.java :322) at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl icationFilterChain.java:304) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:210) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV alve.java:224) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV alve.java:175) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica torBase.java:472) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j ava:164) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j ava:100) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: 929) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:118) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav a:405) at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcesso r.java:316) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process( AbstractProtocol.java:515) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoin t.java:1544) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.ja va:91) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:1 12) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java :173) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:455) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:413) at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:1030) at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement. java:194) at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPrepare dStatement.java:785) at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPrepa redStatement.java:860) at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStateme nt.java:1186) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePrep aredStatement.java:3381) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePrepare dStatement.java:3425) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(Oracle PreparedStatementWrapper.java:1490) at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(Jd bcTemplate.java:648) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java: 591) ... 39 more

I've searched multiple problems with this error but none of them seem to address the same issue as mines. I am using Oracle SQL.

Maybe someone has ran into this problem before? Any help is appreciated. Thanks!

FIXED THE PROBLEM

The issue was the tables. They just needed permissions in the database to be accessed.

What I did was this:

grant all on sa.table to public
/
create public synonym table for sa.table
/
grant all on sa.table2 to public
/
create public synonym table2 for sa.table2
/

Upvotes: 3

Views: 12012

Answers (1)

Steven Fines
Steven Fines

Reputation: 477

Most likely your web app is logging into a different schema than your table

Try specifying the schema explictly in the sql statement. i.e. :

SELECT a, b FROM user.TABLE

Upvotes: 2

Related Questions