BLOB的问题

jsp_jsp 2008-02-03 03:54:34
public static boolean addNewsPic()
{
Connection co=null;
java.sql.PreparedStatement st=null;
ResultSet rs=null;
boolean bool=false;
try{

co=DB.DBCtl.Connect();

String sql="insert into te (id,data) values('1',empty_blob())";

co.setAutoCommit(false);
DB.DBCtl.outPutLog(sql);
st=co.prepareStatement(sql);

st.executeUpdate();

rs = st.executeQuery("select data from te where id=1 for update");

if(rs.next())
{

oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("data");

BufferedOutputStream out = new BufferedOutputStream

(blob.getBinaryOutputStream());


out.write("abc".getBytes());
out.close();



}

co.commit();
bool=true;
}catch(Exception e){DB.DBCtl.outPutLog(e);}
finally{DB.DBCtl.closeConnection(co,st,rs);}
return bool;
}


public static boolean addNewsPic()
{
Connection co=null;
java.sql.PreparedStatement st=null;
ResultSet rs=null;
boolean bool=false;
try{

co=DB.DBCtl.Connect();

String sql="insert into te (id,data) values(?,?)";

co.setAutoCommit(false);
DB.DBCtl.outPutLog(sql);

st=co.prepareStatement(sql);
st.setInt(1,1);
st.setString(2,"empty_blob()");
st.executeUpdate();

rs = st.executeQuery("select data from te where id=1 for update");

if(rs.next())
{

oracle.sql.BLOB blob = (oracle.sql.BLOB) rs.getBlob("data");

BufferedOutputStream out = new BufferedOutputStream(blob.getBinaryOutputStream());


out.write("abc".getBytes());
out.close();



}

co.commit();
bool=true;
}catch(Exception e){DB.DBCtl.outPutLog(e);}
finally{DB.DBCtl.closeConnection(co,st,rs);}
return bool;
}
第一种写法是可以的,第二种写法红色字体那句报错:java.sql.SQLException: ORA-01465: 无效的十六进制数字
应该怎么写才对?
...全文
55 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zs_han 2008-02-03
  • 打赏
  • 举报
回复

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧