public class TestCLOB {
static String url = "jdbc:oracle:thin:@localhost:1521:orcl";
static String driver = "oracle.jdbc.driver.OracleDriver";
static String userName = "scott";
static String pwd = "tiger";
public static void main(String[] args) {
try {
addCLOB();
// readCLOB();
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public static void readCLOB() throws ClassNotFoundException, SQLException, IOException
{
Class.forName(driver);// 加载数据库驱动
Connection con = DriverManager.getConnection(url, userName, pwd);
con.setAutoCommit(false);
PreparedStatement pstm = con.prepareStatement("select myClob from attachment where id=1");
ResultSet rs = pstm.executeQuery();
CLOB clob = null;
if(rs.next())
{
clob = (CLOB) rs.getClob(1);
}
BufferedReader br = new BufferedReader(clob.getCharacterStream());
File file = new File("D:\\aad.txt");
BufferedWriter bw = new BufferedWriter(new FileWriter(file));
String s = null;
while((s = br.readLine())!=null)
{
bw.write(s);
bw.newLine();
}
bw.close();
br.close();
con.close();
}
public static void addCLOB() throws ClassNotFoundException, SQLException, IOException {
Class.forName(driver);// 加载数据库驱动
Connection con = DriverManager.getConnection(url, userName, pwd);
con.setAutoCommit(false);
Statement stmt = con.createStatement();
String initSql = "UPDATE ATTACHMENT SET MYCLOB=EMPTY_CLOB() WHERE ID=1";
// 读取CLOB字段
String updateSql = "SELECT MYCLOB FROM ATTACHMENT WHERE ID=1";
stmt.executeUpdate(initSql);
ResultSet rs = stmt.executeQuery(updateSql);
if (rs.next()) {
CLOB clob = (CLOB) rs.getClob(1); // 获取CLOB字段内容并转换为oracle.sql.CLOB类型
Writer os = clob.setCharacterStream(1); // 获取CLOB的输出流
BufferedReader br = new BufferedReader(new FileReader(new File("F:\\abc.txt"))); // 读取文本文件
String line = br.readLine();
StringBuffer buffer = new StringBuffer();
while (line != null) {
buffer.append(line+"\r\n");
line = br.readLine();
}
os.write(buffer.toString());
os.flush();
br.close();
os.close();
con.commit();
con.close();
}
System.out.println("Saved");
}
}
原文:http://9882931.blog.51cto.com/9872931/1615102