3

編集:修正済み!以下を見てください

そこで、SQL Developerでクエリをテストしましたが、正常に機能します。ただし、私の実装では、実行によってデータがリストに読み込まれず、次のエラーが発生します。

org.springframework.jdbc.BadSqlGrammarException:PreparedStatementCallback; 不正なSQL文法[selectcolumnname、displayname、viewsortorder、capsdisind、window、DIS FIELDID、(select 1 from WEB_CUSTDISABLEDFIELDS where custid =?AND A.DISFIELD ID = WEB_CUSTDISABLEDFIELDS.DISFIELDID)from web_DISABLEDFIELDS A]; ネストされた例外はjava.sql.SQLSyntaxErrorExceptionです:ORA-00942:表またはビューが存在しません
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.J .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)atsun.reflect.NativeMethodAccessorImpl。invoke0(ネイティブメソッド)at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)at java.lang.reflect.Method.invoke(Unknown Source)atflex.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)atjavax.servlet。 http.HttpServlet.service(HttpServlet.java:722)at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF ilterChain.java:210)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)org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal ve.java:118)atorg.apache.catalina.connector。 CoyoteAdapter.service(CoyoteAdapter.jav a:405)org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcesso r.java:316)at org.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:515)atorg.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)atjava.lang。 Thread.run(不明なソース)原因:java.sql.SQLSyntaxErrorException:ORA-00942:表またはビューがoracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.ja va:91)のoracle.jdbc.driverに存在しません.DatabaseError.newSQLException(DatabaseError.java:1 12)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(T dStatement.java:785)at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPrepa redStatement.java:860)at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.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)atorg.springframework。 jdbc.core.JdbcTemplate $ 1.doInPreparedStatement(Jd bcTemplate.java:648)at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)...39詳細jdbc.core.JdbcTemplate $ 1.doInPreparedStatement(Jd bcTemplate.java:648)at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)...39詳細jdbc.core.JdbcTemplate $ 1.doInPreparedStatement(Jd bcTemplate.java:648)at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:591)...39詳細

このエラーで複数の問題を検索しましたが、どれも地雷と同じ問題に対処していないようです。OracleSQLを使用しています。

たぶん誰かが以前にこの問題に遭遇したことがありますか?どんな助けでも大歓迎です。ありがとう!

問題を修正しました

問題はテーブルでした。アクセスするには、データベース内のアクセス許可が必要でした。

私がしたことはこれでした:

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
/
4

1 に答える 1

2

ほとんどの場合、Webアプリはテーブルとは異なるスキーマにログインしています

sqlステートメントでスキーマを明示的に指定してみてください。すなわち:

SELECT a, b FROM user.TABLE
于 2012-10-23T23:00:40.013 に答える