首页 \ 问答 \ java.sql.SQLException:ORA-00942:表或视图不存在,每三次访问数据库(java.sql.SQLException: ORA-00942: table or view does not exist, getting in every third hit to database)

java.sql.SQLException:ORA-00942:表或视图不存在,每三次访问数据库(java.sql.SQLException: ORA-00942: table or view does not exist, getting in every third hit to database)

我正在一个java项目中工作,我们使用oracle作为数据库,我们有两个模式,我们在连接池中创建saprate连接的每个模式。

如果我们一次从客户端获取来自表的数据的最大2请求,但它每隔三次获取java.sql.SQLException: ORA-00942: table or view does not exist异常,它的工作正常。

我想了解它为什么会发生以及可能的原因是什么? 请帮帮我。

完整Stacktrace:

java.sql.SQLException: ORA-00942: table or view does not exist
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:742)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:212)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:795)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1030)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:835)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1123)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3284)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3328)
    at DLRecordSetSQL.DLRecordSetSQL.setRecordCount(DLRecordSetSQL.java:3622)
    at DLRecordSetSQL.DLRecordSetSQL.open(DLRecordSetSQL.java:3124)
    at DLRecordSetSQL.DLRecordSetSQL.open(DLRecordSetSQL.java:3207)
    at com.utility.queryManager.util.MetadataManager.init(MetadataManager.java:79)
    at com.utility.queryManager.util.MetadataManager.<init>(MetadataManager.java:65)
    at com.utility.queryManager.processor.UtilityManagerRequestProcessor.selectCommandRequestProcessor(UtilityManagerRequestProcessor.java:187)
    at com.utility.queryManager.processor.UtilityManagerRequestProcessor.UtilityRequestProcessor(UtilityManagerRequestProcessor.java:77)
    at com.utility.queryManager.servlet.UtilityManagerServlet.doPost(UtilityManagerServlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

i am working in a java project, where we are using oracle as a database and we have two schema, for every schema we are creating saprate connections in connection pool.

its working fine if we hit max 2 request at a time from the client for the data from a table but at every third time its getting java.sql.SQLException: ORA-00942: table or view does not exist exception.

i want to understand why its happening and what would be the possible the reason? Please help me.

Full Stacktrace:

java.sql.SQLException: ORA-00942: table or view does not exist
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:287)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:742)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:212)
    at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:795)
    at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:1030)
    at oracle.jdbc.driver.T4CPreparedStatement.executeMaybeDescribe(T4CPreparedStatement.java:835)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1123)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3284)
    at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3328)
    at DLRecordSetSQL.DLRecordSetSQL.setRecordCount(DLRecordSetSQL.java:3622)
    at DLRecordSetSQL.DLRecordSetSQL.open(DLRecordSetSQL.java:3124)
    at DLRecordSetSQL.DLRecordSetSQL.open(DLRecordSetSQL.java:3207)
    at com.utility.queryManager.util.MetadataManager.init(MetadataManager.java:79)
    at com.utility.queryManager.util.MetadataManager.<init>(MetadataManager.java:65)
    at com.utility.queryManager.processor.UtilityManagerRequestProcessor.selectCommandRequestProcessor(UtilityManagerRequestProcessor.java:187)
    at com.utility.queryManager.processor.UtilityManagerRequestProcessor.UtilityRequestProcessor(UtilityManagerRequestProcessor.java:77)
    at com.utility.queryManager.servlet.UtilityManagerServlet.doPost(UtilityManagerServlet.java:36)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:317)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:204)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:311)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

原文:https://stackoverflow.com/questions/38910801
更新时间:2023-04-23 18:04

最满意答案

做这个

$('.data-item').on('shown', function(e, editable) {
    editable.input.$input.keypress(function (e) {
        if (e.which == 13) {
            return false;
        }
    });
});

其中'.data-item'是可编辑的元素。 如果您通过输入按钮禁用提交,则需要拥有自己的“保存”按钮才能提交表单。


Do this

$('.data-item').on('shown', function(e, editable) {
    editable.input.$input.keypress(function (e) {
        if (e.which == 13) {
            return false;
        }
    });
});

Where '.data-item' is the editable element(s). You'll need to have your own "save" button to submit the form if you disable submitting via the enter button.

相关问答

更多
  • 在linux系统上,您可以使用stty命令修改终端行为。 默认情况下,终端将缓冲所有信息,直到按下Enter键,甚至将其发送到C程序。 从程序本身改变行为的一个快速,肮脏和非特别便携的示例: #include int main(void){ int c; /* use system call to make terminal send all keystrokes directly to stdin */ system ("/bin/stty raw"); while(( ...
  • 那么你可以使用jQuery禁用验证码输入字段上的Enter按钮。 一个例子是: $('#txtInput').bind("keypress", function (e) { if (e.keyCode == 13) return false; }); 其中keyCode == 13是Enter键 更新要在文件中添加上述代码,只需将其复制并粘贴到您的html中: