package myJava;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.sql.Blob;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;public class TT {
static Connection con = null;
static Statement stat = null;
static PreparedStatement pstat = null;
static ResultSet res = null; public static void main(String[] args) { try {
Class.forName("oracle.jdbc.driver.OracleDriver");
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
try {
con = DriverManager.getConnection(
"jdbc:oracle:thin:@192.168.5.160:1521:my0id", "xuxiao",
"0000");
stat = con.createStatement();
tt();
} catch (SQLException e) {
e.printStackTrace();
}
}

public static void tt(){

Blob bl=null;

try {
con.setAutoCommit(false);
res=stat.executeQuery("select bb from test");
res.next();
bl=res.getBlob(1);

File f=new File("f:/1920SSJJ_1002.jpg");
FileInputStream fis=new FileInputStream(f);
System.out.println(f.length());

BufferedOutputStream bos=new BufferedOutputStream(bl.setBinaryStream(1));

int n=0;
n=fis.read();
while(n != -1){
bos.write(n);
n=fis.read();
}

con.commit();
} catch (SQLException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
控制台输出以下内容:
285229
Exception in thread "main" java.lang.AbstractMethodError: oracle.sql.BLOB.setBinaryStream(J)Ljava/io/OutputStream;
at myJava.TT.tt(TT.java:59)
at myJava.TT.main(TT.java:37)进行其他数据类型的读写时没这问题。
如果是jdbc驱动的问题,
能帮忙提供一个可用的oracle驱动地址吗?(oracle 9i)