在尝试向现有表中插入一批行时出现异常
ORA-00942: table or view does not exist
我可以确认该表存在于 db 中,我可以使用 oracle 向该表插入数据 sql开发人员。但是当我尝试在 java 中使用 preparedstatement 插入行时,它的抛出表不存在错误。
请在下面找到错误的堆栈跟踪
java.sql.SQLException: ORA-00942: table or view does not exist
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:289)
at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:573)
at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1889)
at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:1093)
at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:2047)
at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1940)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout>>(OracleStatement.java:2709)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:589)
at quotecopy.DbConnection.insertIntoDestinationDb(DbConnection.java:591)
at quotecopy.QuoteCopier.main(QuoteCopier.java:72)
任何人都可以提出此错误的原因吗?
更新:问题已解决
我的数据库连接属性或我的表或 View 名称没有问题。解决问题的方法很奇怪。我尝试插入的列之一是 Clob 类型。由于我之前在 oracle db 中处理 clob 数据时遇到了很多麻烦,所以尝试用临时字符串 setter 替换 clob setter ,并执行相同的代码,没有任何问题,所有行都被正确插入!!!。
ie. peparedstatement.setClob(columnIndex, clob)
被替换为
peparedstatement.setString(columnIndex, "String")
为什么在插入 clob 数据时出错会抛出错误表或 View 错误。你们谁能解释一下吗?
非常感谢您的回答和评论。
最佳答案
如果表存在,但您没有任何权限,Oracle 也会报告此错误。因此,如果您确定 table 在那里,请检查拨款。
关于java - 获取异常 ORA-00942 : table or view does not exist - when inserting into an existing table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6561650/