首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当插入到现有表时,获取异常ORA-00942:表或视图不存在

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

Stack Overflow用户
提问于 2011-07-03 07:26:16
回答 9查看 80.7K关注 0票数 15

当我试图将一批行插入到现有表时,我会遇到以下异常

ORA-00942:表或视图不存在

我可以确认该表存在于db中,并且可以使用向该表插入数据。但是,当我试图使用java中的preared语句插入行时,它的抛出表不存在错误。

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

代码语言:javascript
运行
复制
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,执行相同的代码,没有任何问题,所有行都被正确插入!

ie.peparedstatement.setClob(columnIndex,clob)

被用

peparedstatement.setString(columnIndex,"String")

错误表或视图存在的原因是在插入clob数据时抛出错误。你们谁能解释一下吗?

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

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-07-19 08:40:27

我的数据库连接属性或表或视图名称都没有问题。这个问题的解决办法很奇怪。我正在尝试的一个列是Clob类型的。由于我以前在处理oracle db中的clob数据时遇到了很多困难,所以尝试用一个临时字符串setter替换clob setter,执行相同的代码,没有任何问题,所有行都被正确插入!

ie.peparedstatement.setClob(columnIndex,clob)

被用

peparedstatement.setString(columnIndex,"String")

票数 7
EN

Stack Overflow用户

发布于 2011-07-03 08:35:41

如果该表存在,Oracle也会报告此错误,但您对它没有任何特权。因此,如果您确定表在那里,请检查赠款。

票数 14
EN

Stack Overflow用户

发布于 2011-07-12 13:51:52

在目标表确实存在并具有正确特权的某些情况下,setCLOB()似乎存在一些问题,从而导致ORA-00942。我现在有了这个确切的问题,我可以让ORA-00942离开简单地不绑定CLOB到同一个表。

我尝试了setClob()和java.sql.Clob,setCLOB()和oracle.jdbc.CLOB,但是结果是一样的。

正如您所说的,如果将数据绑定为字符串,那么问题就会消失--但这会限制您的数据大小为4k。

从测试中看,它似乎是在绑定CLOB之前会话上打开事务时触发的。当我解决了this...checking甲骨文的支持问题后,我会反馈。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6561650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档