Java操作数据库CLob字段
一、场景
1. 数据库表table1中的字段content为varchar2类型,现在因字段长度不够,需要修改为clob类型
二、 操作
1、 修改数据库
// modify content clob 数据库会提示类型转换失败,不可以直接修改
a. 增加字段content_clob,然后将content内容复制到content_clob中,然后再删除content字段,将content_clob字段重命名
alter table table1 add content_clob clob;
update table1 set content_clob = content;
alter table table1 drop column content;
alter table table1 rename column content_clob to content;
2、 修改update部分的更新代码
package com.download;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import oracle.sql.CLOB;
public class UserController {
public boolean update(String content) {
int result = 0;
Connection conn = null; //数据库连接
String sql = "update table1 set content=?";
PreparedStatement pst = null;
try {
CLOB clob = oracle.sql.CLOB.createTemporary(conn, false, CLOB.DURATION_SESSION);
clob.setString(1, content);
pst = conn.prepareStatement(sql);
pst.setClob(1, clob);
result = pst.executeUpdate();
} catch(Exception e) {
e.printStackTrace();
} finally {
try {
pst.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return false;
}
}
3、 在数据库中 clob的数据长度默认是4G,而且长度是无法比较的,但是可以转换比较,见4
4、 oracle中的clob转换为varchar2
to_char(substr(table1.content, 1, 1000))