【发布时间】:2014-02-16 18:09:27
【问题描述】:
我编写了一些从数据库中检索视频的代码。此视频存储为 BLOB 文件。我已经在
package edu.jay.fyp.featureextractor.database;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import oracle.jdbc.OracleConnection;
import oracle.jdbc.OracleResultSet;
import oracle.ord.im.OrdVideo;
public class OracleConnector {
private static final String dbUrl = "jdbc:oracle:thin:@jay_tank-pc:1521:fyp";
private static final String user = "SYSTEM";
private static final String pwd = "xyz";
public static void main(String[] args) {
try {
Class.forName("oracle.jdbc.OracleDriver");
OracleConnection connection = (OracleConnection) DriverManager.getConnection(dbUrl,user,pwd);
System.out.println("Connected");
String query = "select video_name, video_content from system.videos where sr_no = '1'";
PreparedStatement ps = connection.prepareStatement(query);
OracleResultSet rs = (OracleResultSet) ps.executeQuery();
OrdVideo videoProxy = null;
if(rs.next()){
rs.getORAData("video_content", OrdVideo.getORADataFactory());
}
//System.out.println(videoProxy.getBitRate());
} catch (SQLException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
我使用的代码类似于 Oracle 文档中给出的代码,但是当我运行我的代码时,我得到了以下异常:
Exception in thread "main" java.lang.ClassCastException: oracle.sql.BLOB cannot be cast to oracle.sql.STRUCT
at oracle.ord.im.OrdVideo.create(OrdVideo.java:1797)
at oracle.ord.im.OrdVideo$1.create(OrdVideo.java:1786)
at oracle.jdbc.driver.Accessor.getORAData(Accessor.java:1387)
at oracle.jdbc.driver.OracleResultSetImpl.getORAData(OracleResultSetImpl.java:1408)
at oracle.jdbc.driver.OracleResultSet.getORAData(OracleResultSet.java:632)
at edu.jay.fyp.featureextractor.database.OracleConnector.main(OracleConnector.java:28)
【问题讨论】:
-
错误在你文件的第28行,你能指出是哪一行吗?
-
rs.getORAData("video_content", OrdVideo.getORADataFactory());
标签: java database oracle multimedia