1.CLOB字段的插入

  一般情况下,clob类型的数据直接insert可能会因为字符过长而出错,所以要用对象形式来插入。

  具体示例:

  首先,我们需要创建一个含CLOB字段的表:

 
  
  1.   create table test (id INTEGER, content clob); 

  然后插入空值:

 
  
  1.   String strSql = “INSERT INTO TEST(id,content) values(‘0001’,?) ”;  
  2.  
  3.   con.setAutoCommit(false); //conn为Connection对象  
  4.  
  5.   //创建并实例化一个CLOB对象  
  6.  
  7.   CLOB clob = new CLOB((OracleConnection)con);  
  8.  
  9.   clob = oracle.sql.CLOB.createTemporary((OracleConnection)con,true,1);  
  10.  
  11.   //对CLOB对象赋值  
  12.  
  13.   clob.putString(1,formateSingleQuotes(Content));  
  14.  
  15.   OracleConnection OCon = (OracleConnection)con;  
  16.  
  17.   OraclePreparedStatement pstmt = (OraclePreparedStatement)OCon.prepareCall(strSql);  
  18.  
  19.   pstmt.setCLOB(1,clob);  
  20.  
  21.   int i = pstmt.executeUpdate();  
  22.  
  23.   pstmt.close();  
  24.  
  25.   OCon.commit();  
  26.  
  27.   OCon = null;  
  28.  
  29.   con = null;  
  30.  
  31.   Boolean flag = true;  
  32.  
  33.   if(i <=0)  
  34.  
  35.   {  
  36.  
  37.   flag = false;  
  38.  
  39.   }  
  40.  
  41.   if (flag == true)  
  42.  
  43.   {  
  44.  
  45.   out.print( "<SCRIPT>alert('成功保存!'); </SCRIPT>");  
  46.  
  47.   }  
  48.  
  49.   else 
  50.  
  51.   {  
  52.  
  53.   out.print( "<SCRIPT>alert('保存数据时出错,请检查你输入的数据格式是否符合要  
  54.  
  55.   求');self.history.back ();</SCRIPT>");  
  56.  
  57.   }  

  注意:

  一定不要忘记引入包:import oracle.sql.*,oracle.jdbc.driver.*

  2.CLOB类型的修改

  针对CLOB字段的修改除了SQL语句外其他和插入相同

 
  
  1.   String strSql = “UPDATE TEST set content=? Where Id=’0001’ ”;  
  2.  
  3.   con.setAutoCommit(false); //conn为Connection对象  
  4.  
  5.   //创建并实例化一个CLOB对象  
  6.  
  7.   CLOB clob = new CLOB((OracleConnection)con);  
  8.  
  9.   clob = oracle.sql.CLOB.createTemporary((OracleConnection)con,true,1);  
  10.  
  11.   //对CLOB对象赋值  
  12.  
  13.   clob.putString(1,formateSingleQuotes(Content));  
  14.  
  15.   OracleConnection OCon = (OracleConnection)con;  
  16.  
  17.   OraclePreparedStatement pstmt = (OraclePreparedStatement)OCon.prepareCall(strSql);  
  18.  
  19.   pstmt.setCLOB(1,clob);  
  20.  
  21.   int i = pstmt.executeUpdate();  
  22.  
  23.   pstmt.close();  
  24.  
  25.   OCon.commit();  
  26.  
  27.   OCon = null;  
  28.  
  29.   con = null;  
  30.  
  31.   Boolean flag = true;  
  32.  
  33.   if(i <=0)  
  34.  
  35.   {  
  36.  
  37.   flag = false;  
  38.  
  39.   }  
  40.  
  41.   if (flag == true)  
  42.  
  43.   {  
  44.  
  45.   out.print( "<SCRIPT>alert('成功保存!'); </SCRIPT>");  
  46.  
  47.   }  
  48.  
  49.   else 
  50.  
  51.   {  
  52.  
  53.   out.print( "<SCRIPT>alert  
  54.  
  55.   ('保存数据时出错,请检查你输入的数据格式是否符合要求');  
  56.  
  57.   self.history.back ();</SCRIPT>");  
  58.  
  59.   }