获取 ORA-00942:table 或在 Java 中使用 Blob 不存在视图

Getting ORA-00942: table or view does not exist using Blob in Java

我在尝试使用 PreparedStatement 插入我的 ORACLE ddbb 时遇到问题。它似乎与我正在处理的 Blob 数据类型有关。 在此 link changing type 中,解决方案是将数据类型从 Blob 更改为 String,但这不是我要找的。我需要在 table.

中插入一个 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:table 或视图不存在

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)

你知道这是怎么回事吗?

谢谢!!!

我很抱歉伙计们:-P

最后,由于 ORACLE 错误是关于授权的,这是一个授权问题...我没有意识到,因为与 DDBB 的连接正在使用另一个用户进行连接。 解决方案显然是为该用户提供适当的授权。

再次抱歉耽误您的时间!