- 论坛徽章:
- 0
|
本人对数据库的clob类型进行修改的时候发现末尾的几个字符不能修改,而前面的可以修改。比如说123456789,我可以把它改为23456789,但是不能改为12345678。以下是操作CLOB的代码:
<%@ page contentType="text/html; charset=GBK" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="util_struts.dbconn.DSB"%>
<%@ page import="util_struts.dbconn.DSB,java.io.*,com.sd.util.ParamUtils"%>
<%@ page import="com.sd.util.SysUtil,oracle.jdbc.*,java.sql.Clob,oracle.sql.CLOB" %>
<%@ page import="com.sd.util.file.FileOperate" %>
<%
if(session.getAttribute("admin_ygbh")==null ||session.getAttribute("admin_ygbh").equals(""))
{
response.sendRedirect("/nopage.jsp");return;
}
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;
PreparedStatement pstmt=null,pp=null;
String zid=request.getParameter("zid");
String jdtplj=request.getParameter("jdtplj");
String jdtpxx=request.getParameter("jdtpxx");
String jdfjjj=request.getParameter("jdfjjj");
String sfid=request.getParameter("sfid");
System.out.println("sfid="+sfid);
String csidxx=request.getParameter("csidxx");
if(csidxx==null||csidxx.equals(""))
{
csidxx=sfid;
}
System.out.println("csidxx="+csidxx);
java.sql.Clob clob=null;
oracle.sql.CLOB oclob=null;
try
{
System.out.println("111111111111111");
String sql="update t_sj_zrfgxx set jdtplj='"+jdtplj+"',jdfjjj='"+jdfjjj+"',jddqxx='"+csidxx+"' where jdid00='"+zid+"'";
conn=DSB.getConnection();
conn.setAutoCommit(false);
stmt = conn.createStatement();
//pstmt=conn.prepareStatement(sql);
System.out.println("222222222222");
pstmt=conn.prepareStatement("select jdtpxx from t_sj_zrfgxx where jdid00=? for update");
System.out.println("333333333333333");
pstmt.setString(1,zid);
System.out.println("444444444444444");
rs=pstmt.executeQuery();
System.out.println("555555555555555");
if(rs.next())
{
oclob=(oracle.sql.CLOB)rs.getClob(1);
System.out.println("66666666666666");
}
pstmt.close();
pstmt=conn.prepareStatement("update t_sj_zrfgxx set jdtpxx=? where jdid00=?");
System.out.println("7777777777");
oclob.putString(1,jdtpxx);
pstmt.setClob(1,oclob);
pstmt.setString(2,zid);
System.out.println("888888888888888888");
pstmt.executeUpdate();
pstmt.close();
/*
rs=stmt.executeQuery("select jdtpxx from t_sj_zrfgxx where jdid00='"+zid+"' for update");
if(rs.next())
{
oracle.sql.CLOB oclob=(oracle.sql.CLOB)rs.getClob("jdtpxx");
Writer outStream = oclob.getCharacterOutputStream();
//data???????,??:String data
char[] c = jdtpxx.toCharArray();
outStream.write(c, 0, c.length);
outStream.flush();
outStream.close();
}
*/
stmt.execute(sql);
conn.commit();
out.print("<script>alert('????')</script>");
out.print("<script>history.back(-1)</script>");
}
catch(SQLException se)
{
System.out.println("¸üÐÂÊý¾Ýʱ³ö´í:"+se.toString());
}
catch(Exception ex)
{
System.out.println("²úÉúÁËÆäËû´íÎó"+ex.toString());
}
finally
{
try
{
if(rs!=null)
rs.close();
if(stmt!=null)
stmt.close();
if(pstmt!=null)
pstmt.close();
if(conn!=null&&!conn.isClosed())
conn.close();
}catch(Exception ex)
{
ex.printStackTrace();
}
}
%> |
|