获取 ORA-00942:在 Java 中使用 Blob 的表或视图不存在
Posted
技术标签:
【中文标题】获取 ORA-00942:在 Java 中使用 Blob 的表或视图不存在【英文标题】:Getting ORA-00942: table or view does not exist using Blob in Java 【发布时间】:2016-06-22 12:51:40 【问题描述】:我在尝试使用 PreparedStatement 插入我的 ORACLE ddbb 时遇到问题。它似乎与我正在处理的 Blob 数据类型有关。 在此链接changing type 中,解决方案是将数据类型从 Blob 更改为 String,但这不是我要找的。我需要在我的表中插入一个 Blob。
这是我的代码:
public void insert( Connection conn , String id, String imageName, byte[] image ) throws Exception
PreparedStatement ps = null;
Blob img = conn.createBlob();
img.setBytes(1, image);
try
String sql = "INSERT INTO MY_OWNER.IMAGE_TABLE "
+ "(ID, IMAGE_NAME, BLOB_IMAGE) "
+ "VALUES (?, ?, ?) ";
ps = conn.prepareStatement(sql);
ps.setString(1, id);
ps.setString(2, imageName);
ps.setBlob(3, img);
ps.executeUpdate();
conn.commit();
catch ( Exception e )
conn.rollback();
throw new Exception ( e );
finally
if ( ps != null )
ps.close();
if ( conn != null )
conn.close();
我肯定有特权并且对语法也有把握。就像我说的,我相信 Blob 很麻烦。
这是错误:
java.lang.Exception: java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist
原因:java.sql.SQLSyntaxErrorException: ORA-00942: 表或视图不存在
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:440)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:396)
at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:837)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:445)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:191)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:523)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:207)
at oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1010)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1315)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3576)
at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3657)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
你知道这是怎么回事吗?
谢谢!!!
【问题讨论】:
【参考方案1】:我很抱歉队友:-P
最后,由于 ORACLE 错误是关于授权的,这是一个授权问题……我没有意识到,因为与 DDBB 的连接正在使用另一个用户进行连接。 解决方案显然是给这个用户适当的授权。
再次抱歉,耽误您的时间!
【讨论】:
以上是关于获取 ORA-00942:在 Java 中使用 Blob 的表或视图不存在的主要内容,如果未能解决你的问题,请参考以下文章
java.sql.SQLException: ORA-00942: 表或视图不存在(Intellij 生成的文件)
java.sql.SQLSyntaxErrorException:ORA-00942:netbeans 8.0.1 中的表或视图不存在错误消息
java.sql.SQLException: ORA-00942: 表或视图不存在