当前位置: 首页 > 面试题库 >

获取异常ORA-00942:表或视图不存在-插入现有表时

南门欣怡
2023-03-14
问题内容

尝试向现有表中插入一批行时,出现以下异常

ORA-00942:表或视图不存在

我可以确认该表存在于db中,并且可以使用oracle sql
developer将数据插入该表中。但是,当我尝试在Java中使用preparestatement插入行时,其抛出表不存在错误。

请在下面找到错误的堆栈跟踪

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)

任何人都可以提出此错误的原因吗?

更新: 问题已解决

我的数据库连接属性或表或视图名称都没有问题。这个问题的解决方案很奇怪。我尝试插入的列之一是Clob类型。由于之前在oracle
db中处理clob数据时遇到很多麻烦,请尝试用临时字符串setter替换clob setter,并执行相同的代码而不会出现任何问题,并正确插入所有行!

即。peparedstatement.setClob(columnIndex,clob)

被替换为

peparedstatement.setString(columnIndex,“ String”)

为什么错误表或视图确实存在错误,但在插入Clob数据时却抛出错误。谁能解释一下吗?

非常感谢您的回答和评论。


问题答案:

我的数据库连接属性或表或视图名称都没有问题。这个问题的解决方案很奇怪。我尝试插入的列之一是Clob类型。由于之前在oracle
db中处理clob数据时遇到很多麻烦,请尝试用临时字符串setter替换clob setter,并执行相同的代码而不会出现任何问题,并正确插入所有行!

即。peparedstatement.setClob(columnIndex,clob)

被替换为

peparedstatement.setString(columnIndex,“ String”)



 类似资料:
  • 问题内容: 我们正在测试中针对ORACLE 10g运行一个Java /hibernate应用程序。有时,我们会看到此错误: ORA-00942:表或视图不存在 有没有办法找出ORACLE在谈论哪个表/视图? 我知道我可以在hibernate中添加更多级别的日志记录,这将显示它在ORACLE上执行的所有SQL,然后运行该SQL以确定哪个TABLE / VIEW缺少或缺少权限。但是考虑到它是在“测试/

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想要改善这个问题吗? 更新问题,使它成为Stack Overflow的主题。 7年前关闭。 改善这个问题 我正在尝试将Oracle数据库连接到我的JAVA Web项目。当使用系统用户连接创建到数据库的连接时,将成功建立连接。 但是当我在连接中执行一个简单的select *命令时,它说 错误代码942,SQL状态42000:ORA-0

  • 我已经浏览了许多链接,比如Spring Batch Framework-Auto create Batch Table,并尝试了许多选项,但对我来说还不起作用。 我正在使用Spring Boot项目。 UPDATE::现在我无法在MySQL上创建Spring批处理表。

  • 通过本教程,我可以完成以下步骤: 现在,您应该能够根据需要多次调用migrate,并且它可以正常工作: PHP工匠迁移:刷新 运行该命令时,我会出现以下错误: [Illumb\Database\QueryException] SQLSTATE[42S02]:找不到基表或视图:1146表“sdbd\u todo.migrations”不存在(SQL:选择max()作为聚合 来自) [PDOExcep

  • 我正在尝试在NetBeans 8.0.2 IDE和GlassFish 4.1中运行一个名为(JSF with Facelets)的web应用程序,该应用程序通过托管bean中的以下代码访问关系数据库: 当我运行应用程序时,我在浏览器中得到以下错误: AddressBean。java第157行是: 通过以下步骤创建包含ADDRESSES表的addressbook数据库: > 右键单击GlassFis