package com.zt.generator.data; import java.io.IOException; import java.io.Reader; import java.io.StringWriter; import java.sql.Blob; import java.sql.Clob; import java.sql.SQLException; public class LobUtil { public static String clobToString(Clob clob) { if (clob == null) { return null; } try { Reader r = clob.getCharacterStream(); StringWriter sw = new StringWriter(); char[] cs = new char[(int) clob.length()]; try { r.read(cs); sw.write(cs); return sw.toString(); } catch (IOException e) { e.printStackTrace(); } } catch (SQLException e) { e.printStackTrace(); } return null; } public static byte[] blobToBytes(Blob blob) { if (blob == null) { return null; } try { return blob.getBytes(1L, (int) blob.length()); } catch (Exception e) { e.printStackTrace(); } return null; } // public static void setClob(DBConn conn, PreparedStatement ps, int i, // Object v) throws SQLException { // if (conn.getDBType().equals(DBConnConfig.ORACLE)) { // OracleConnection oc = (OracleConnection) conn.getPhysicalConnection(); // CLOB clob = null; // try { // clob = CLOB.createTemporary(oc, true, 1);// // Oracle9i中是1,10G中变成了10,但还是会将1自动转为10 // clob.open(1); // Writer writer = clob.setCharacterStream(0L); // writer.write(String.valueOf(v)); // writer.close(); // clob.close(); // ps.setClob(i + 1, clob); // } catch (Exception e) { // try { // if (clob != null) { // CLOB.freeTemporary(clob); // } // } catch (SQLException e1) { // e1.printStackTrace(); // } // e.printStackTrace(); // } // } else { // ps.setObject(i + 1, v); // } // } }