Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java OrdImage LoadFromFile异常_Java_Oracle_Jdbc_Multimedia - Fatal编程技术网

Java OrdImage LoadFromFile异常

Java OrdImage LoadFromFile异常,java,oracle,jdbc,multimedia,Java,Oracle,Jdbc,Multimedia,我正在尝试将图像加载到Oracle多媒体数据库中。我对抛出SQLException的OrdImage.loadDataFromFile()方法有问题 java.sql.SQLException: ORA-22990: LOB locators cannot span transactions ORA-06512: at "SYS.DBMS_LOB", line 1127 ORA-06512: at "ORDSYS.ORDSOURCE", line 801 ORA-06512: at "ORDSY

我正在尝试将图像加载到Oracle多媒体数据库中。我对抛出SQLException的
OrdImage.loadDataFromFile()
方法有问题

java.sql.SQLException: ORA-22990: LOB locators cannot span transactions
ORA-06512: at "SYS.DBMS_LOB", line 1127
ORA-06512: at "ORDSYS.ORDSOURCE", line 801
ORA-06512: at "ORDSYS.ORDIMAGE", line 669
ORA-06512: at line 1
我使用的代码是:

public void uploadImage(String filename) throws SQLException, IOException
    {
        ...

        // retrieve the previously created ORDImage object for future updating
        Statement stmt2 = dbModel.getConnection().createStatement();
        String selSQL = "select IMAGE from PHOTO where id="+test_id+" for update";
        OracleResultSet rset = (OracleResultSet) stmt2.executeQuery(selSQL);
        rset.next();
        OrdImage imgProxy = (OrdImage)
                rset.getORAData("IMAGE", OrdImage.getORADataFactory());
        rset.close();
        stmt2.close();

        // load the media data from a file to the ORDImage Java object
        try {
            imgProxy.loadDataFromFile("/home/anton/Documents/1.MIT_zima/UPA/upa-project/app/Kataster/car42.gif");
        }
       catch (SQLException ex) {
            System.err.println(ex);
       }
        // set the properties of the Oracle Mm object from the Java object
        imgProxy.setProperties();

        ...
    }
异常由以下行引发:

imgProxy.loadDataFromFile("/home/anton/Documents/1.MIT_zima/UPA/upa-project/app/Kataster/car42.gif");

尝试此
setAutoCommit(false)

发出setAutoCommit(false)命令。然后,显式地提交

将所有Blob块写入行后的事务 及

已执行stream.close()方法

如果使用Oracle 10g JDBC驱动程序(或更高版本),则第二个 解决方案

包括使用标准JDBCAPI(setBinaryStream方法

java.sql.PreparedStatement接口的)。在这种情况下,自动提交 能

设置为真

请发一封信。您可能没有禁用自动提交模式。