gpt4 book ai didi

java - "Table or view does not exist"创建表

转载 作者:行者123 更新时间:2023-11-30 09:17:10 24 4
gpt4 key购买 nike

最近我的代码出现了一个非常奇怪的异常:

XXX.WrappedSqlException: ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist

while executing create table ST_UTEST2_DATE (value varchar(100) not null unique,replacement varchar(100) not null)
at XXX
Caused by: java.sql.SQLException: ORA-00604: error occurred at recursive SQL level 1
ORA-00942: table or view does not exist

at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:445)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:879)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:192)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:531)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1037)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1329)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3584)
at oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3685)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.execute(OraclePreparedStatementWrapper.java:1088)
... 8 more

该表确实不存在(在此次发布之前和之后)。当我想执行“创建表”时通常就是这种情况。我不知道如何在创建表时得到“表或 View 不存在”。

此异常仅抛出一次。具有完全相同环境(数据库状态)的相同代码多次执行得很好。有多个线程执行此代码(检查此表是否存在,如果不存在则创建它),每个线程都有自己的连接。但是发生检查和创建的片段是同步的 - 表的执行肯定不会从多个线程同时发生,并且检查和创建是原子的。

欢迎任何可能产生此类异常的想法(包括疯狂的猜测)。

数据库是Oracle 10g。

最佳答案

如果数据字典损坏,这种情况很常见。阅读here更多(不完全是在创建表上,但这可能是同一个问题。尝试那里提供的解决方案)。您可能必须执行 catqueue.sql 脚本。在数据字典上运行任何脚本之前,您应该备份数据库。引用相同的讨论here

关于java - "Table or view does not exist"创建表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19090020/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com