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: 无效的十六进制数字
应该怎么写才对?
{
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: 无效的十六进制数字
应该怎么写才对?
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货