ORACLE中为什么插不进去BLOB阿

来源:百度知道 编辑:UC知道 时间:2024/05/17 23:51:06
郁闷死我拉,写这个代码就是插不进去数据库,说是oracle.sql.BLOB blob=(oracle.sql.BLOB)rs.getBlob(2);有异常,不知道为什么,急求解答~~~!!!!
try{
File myfile=new File("D:\\My Documents\\My Pictures\\Jacky\\1321597.jpg");
//int filelength=(int)myfile.length();
FileInputStream fin=new FileInputStream(myfile);
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con=DriverManager.getConnection("jdbc:odbc:NONSTOP","system","system");
con.setAutoCommit(false);
Statement st = con.createStatement();
st.executeUpdate("insert into NONSTOP.TESTBLOB1 (ID,WJ) values (17,empty_blob());");

ResultSet rs = st.executeQuery("select WJ from NONSTOP.TESTBLOB1 where ID=17 for update");
//File f=new File("D:\\My Documents\\

oracle.sql.BLOB blob=(oracle.sql.BLOB)rs.getBlob(2);
这句代码应该有问题,你只选择了一个字段耶。建议你使用名称更准确,oracle.sql.BLOB blob=(oracle.sql.BLOB)rs.getBlob("WJ");
其他地方我看了没有什么问题,应该就是这里。

blob不能通过insert插入
应该这样:
//先插入记录
st.executeUpdate("insert into NONSTOP.TESTBLOB1 (ID) values (17)");
//updateblob
st.Parameters.Add("eblob", OracleType.Blob);
st.Parameters["eblob"].value = empty_blob();
st.executeUpdate("updateblog nonestop.testblob1 set wl = :eblob");

建议你找本PL/SQL书关于BLOB对象插入方法来看看