Example 6-41: Helper class to create and free temporary CLOB

import java.sql.*;
import oracle.jdbc.driver.*;

public class TemporaryCLOB {
  // Return a new temporary CLOB
  public static Clob create(Connection conn) {
    CallableStatement CS = null;
    Clob clob = null;
    try {
      CS = conn.prepareCall("begin dbms_lob.createtemporary(?,false);end;");
      CS.registerOutParameter(1,Types.CLOB);
      CS.execute();
      clob = CS.getClob(1);
      CS.close();
      return clob;
    }
    catch (SQLException s) {
      try { CS.close(); } catch (SQLException s2) { }
    }
    return null;
  }
  // Free a temporary CLOB
  public static void free(Connection conn, Clob clob) {
    PreparedStatement PS = null;
    try {
      PS = conn.prepareStatement("begin dbms_lob.freetemporary(?);end;");
      PS.setClob(1,clob);
      int rows = PS.executeUpdate();
      PS.close();
    }
    catch (SQLException s) {
      try { PS.close(); } catch (SQLException s2) { }
    }
  }
}