Oracle插入大数据、获取大数据

插入数据库

CLOB tempClob = null;

try {

  Connection conn = getConnection();

  PreparedStatement = = conn.prepareStatement("UPDATE PROGRAM_HISTORY SET DETAILS = ? WHERE ID = 12");

  tempClob = CLOB.createTemporary(conn, true, CLOB.DURATION_SESSION);

  tempClob.open(CLOB.MODE_READWRITE);

  Writer tempClobWriter = tempClob.getCharacterOutputStream();

  tempClobWriter.write(clobData);

  tempClobWriter.flush();

  tempClobWriter.close();

  tempClob.close();



 pStmt.setClob(1, tempClob);

 pStmt.execute();



} catch (Exception ex) { // Trap errors

  System.out.println(" Error Inserting Clob : "+ex.toString());

  ex.printStackTrace();

}finally{

  if(tempClob != null ) tempClob.freeTemporary();

  opstmt.close();

  conn.close();



}

 获取

Oracle rs.getClob("")转String

oracle数据中定义为clob类型的字段,如果用rs.getString()方法获取,值一直为nul,无法取出

用rs.getClob()取出来为Clob型

需把Clob型转为String类型

第一种方法:

rs = pstmt.executeQuery();

            while(rs.next()){

                Reader reader = rs.getClob("afterStepScript")

                        .getCharacterStream();

                BufferedReader r = new BufferedReader(reader);

                StringBuffer sb = new StringBuffer();

                String line;

                try {

                    while ((line = r.readLine()) != null) {



                        sb.append(line);

                        //sb.append("\r\n");

                    }

                } catch (IOException e) {

                    e.printStackTrace();

                }

                

                String afterStepScript=sb.toString();

 第二种方法

Clob clob=rs.getClob("insideScript");

String insideScript="";

if(clob!=null){

   insideScript=clob.getSubString((long)1, (int)clob.length());

}

 

你可能感兴趣的:(oracle)