java 存储clob字段
StringclobSql="SELECTnameFROMTestWHEREFID="+paras[2]+"FORUPDATE";ps=ct.prepareStateme...
String clobSql = "SELECT name FROM Test WHERE FID="+paras[2]+" FOR UPDATE" ;
ps = ct.prepareStatement(clobSql);
rs = ps.executeQuery();
while (rs.next()) {
/* 取出此CLOB对象 */
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("name");
clob.putString(1,paras[1]);
String sql1="update Test set name=? where Fid="+paras[2];
PreparedStatement pstmt=ct.prepareStatement(sql1);
pstmt.setClob(1,clob);
pstmt.executeUpdate(); //为什么执行完后,name这个Clob字段为空呢? 展开
ps = ct.prepareStatement(clobSql);
rs = ps.executeQuery();
while (rs.next()) {
/* 取出此CLOB对象 */
oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("name");
clob.putString(1,paras[1]);
String sql1="update Test set name=? where Fid="+paras[2];
PreparedStatement pstmt=ct.prepareStatement(sql1);
pstmt.setClob(1,clob);
pstmt.executeUpdate(); //为什么执行完后,name这个Clob字段为空呢? 展开
1个回答
推荐于2016-02-28
展开全部
不可以使用update Test 语法来更新。
PreparedStatement pstat=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs1 = pstat.executeQuery();
rs1.moveToInsertRow();
rs1.updateBlob(1, in, file.length() );
rs1.updateInt(2, 1);
rs1.insertRow();
in.close();
rs1.close();
pstat.close();
新增的方法,其实,修改也相似。
PreparedStatement pstat=conn.prepareStatement(sql, ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet rs1 = pstat.executeQuery();
rs1.moveToInsertRow();
rs1.updateBlob(1, in, file.length() );
rs1.updateInt(2, 1);
rs1.insertRow();
in.close();
rs1.close();
pstat.close();
新增的方法,其实,修改也相似。
追问
您好,这个rs1.updateBlob(1, in, file.length() );这里的in是什么?而且我这里只有rs1.updateBlob(columnIndex, x)个方法。Writer out = null ; 代码段 out.flush();为什么这个在linux上面不能执行呢?
追答
in 是 FileInputStream,文件流.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询