按顺序读个字段,这是jdbc的规矩
是规矩就得遵守

解决方案 »

  1.   

    修改后,还是提示:java.sql.SQLException: ORA-01002: 读取违反顺序错误
    import java.sql.*; 
    import java.io.*; 
    import oracle.jdbc.driver.OracleResultSet;
    import oracle.sql.CLOB;public class TestOracleClob implements Serializable

     public static void main(String[] args) 
     { 
      //create table test (id integer,content clob);  System.out.println("-------------------insert -----------------");
      try{
      Class.forName("oracle.jdbc.driver.OracleDriver");
      Connection con=DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.40:1521:A10DB","exam","123456");
      String sql="insert into test values(1,empty_clob())";
      Statement stmt=con.createStatement();
      ResultSet rs=stmt.executeQuery(sql);
      String sqll="select content from test where id=1 for update";
      ResultSet rss=stmt.executeQuery(sqll);
      if(rss.next())
      {
       CLOB clob = ((OracleResultSet)rss).getCLOB(1);
       clob.putString(1,"ddddddddddddddddddddddddd676667565jkkkmmmmmmmmmtggddddddddddddddddddddddddddddddddddddd");
       sql="update test set content=? where id=1";
       PreparedStatement pstmt=con.prepareStatement(sql);
       pstmt.setClob(1,clob);
       pstmt.executeUpdate();
       pstmt.close();
      }  String sql12="insert into test values(?,?)";
      PreparedStatement pstmt1=con.prepareStatement(sql12);
      pstmt1.setInt(1,2);
      pstmt1.setClob(2,oracle.sql.CLOB.empty_lob());
      pstmt1.executeUpdate();
      String sqll2="select content from test where id=2 for update";
      ResultSet rss2=stmt.executeQuery(sqll2);
      if(rss2.next())
      {
       CLOB clob = ((OracleResultSet)rss2).getCLOB(1);
       clob.putString(1,"123affffffffffdfdfdfdddddddffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdddfff");
       String sql1="update test set content=? where id=2";
       PreparedStatement pstmt=con.prepareStatement(sql1);
       pstmt.setClob(1,clob);
       pstmt.executeUpdate();
       pstmt.close();
      }
      //con.commit();
      rss.close();
      rss2.close();
      pstmt1.close();
      rs.close();
      stmt.close();
      con.close();
      System.out.println("-------------insert ok-------------");
      }
      catch(Exception e)
      {
       System.out.println("insert:"+e);
      }
     }
    }