数据文件直接使用中文
package core;
import java.io.*;
import java.sql.*;
import common.*;
/**
* @author Administrator
*
* TODO To change the template for this generated type comment go to Window -
* Preferences - Java - Code Style - Code Templates
*/
public class ClobEx {
public static void addLob(int id, String binFile) throws SQLException {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
try {
con = ConnectionFactory.getFactory().getConnection();
con.setAutoCommit(false);
String sql = "INSERT INTO tbl_clob(id, remark) " +
"VALUES(?, ?)";
ps = con.prepareStatement(sql);
ps.setInt(1, id);
ps.setClob(2, oracle.sql.CLOB.empty_lob());
ps.executeUpdate();
DBUtils.close(ps);
ps = con.prepareStatement(
"SELECT remark FROM tbl_clob" +
" WHERE id = " + id);
rs = ps.executeQuery();
if (rs.next()) {
oracle.sql.CLOB remark =
(oracle.sql.CLOB)rs.getClob(1);
PrintWriter out = new PrintWriter(new OutputStreamWriter(remark.getAsciiOutputStream()));
BufferedReader in = new BufferedReader(
new FileReader(binFile));
String s;
while ((s = in.readLine()) != null) {
out.println(s);
}
in.close();
out.close();
}
con.commit();
} catch (Exception e) {
e.printStackTrace();
try {
con.rollback();
} catch (SQLException se) {
}
throw new SQLException(e.getMessage());
} finally {
DBUtils.close(rs, ps, con);
}
}
public static void fetchLob(int id, String filename) throws SQLException {
Connection con = null;
Statement st = null;
ResultSet rs = null;
try {
con = ConnectionFactory.getFactory().getConnection();
String sql = "SELECT * from tbl_clob where id = " + id;
st = con.createStatement();
rs = st.executeQuery(sql);
if (rs.next()) {
oracle.sql.CLOB remark =
(oracle.sql.CLOB)rs.getClob("remark");
PrintWriter out = new PrintWriter(
new FileWriter(filename));
BufferedReader in = new BufferedReader(
new InputStreamReader(
remark.getAsciiStream(), "GB2312"));
String s;
while ((s = in.readLine()) != null) {
out.println(s);
}
in.close();
out.close();
}
} catch (Exception e) {
throw new SQLException(e.getMessage());
} finally {
DBUtils.close(rs, st, con);
}
}
public static void main(String[] args) throws Exception {
addLob(5, "test_u.txt");
fetchLob(5, "test_c.txt");
System.out.println("completed!");
}
}
分享到:
相关推荐
在IT领域,尤其是在数据库操作与数据管理中,CLOB(Character Large Object)是一种用于存储大量文本数据的数据类型,常用于保存如文章、报告、注释等大文本信息。本文将详细解析CLOB的读写问题,包括其在Oracle...
今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误。 网上说用流来处理,没有这么做。这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了。 下面是这段代码: if(...
默认字符集用于CHAR、VARCHAR、VARCHAR2、CLOB等类型的数据,而国家字符集服务于NCHAR、NVARCHAR、NVARCHAR2、NCLOB等类型,以处理多语言需求。例如,当数据库的默认字符集为ZHS16GBK,国家字符集为AL16UTF16时,...
1. 在 ER 图中,底色为白色的表为已存表,除白色外,其它颜色的表为新增的表。 2. 用同一颜色标注同一操作下的用到表。 3. 标注出表与表间的关系,一对一、一对多等等。 4. 数据库设计文档中,表与字段都要增加备注...
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。 我们不能手工修改数据字典里的信息。 很多时候,一般的ORACLE用户不知道如何有效地利用它。 dictionary...
数据字典里存有用户信息、用户的权限信息、所有数据对象信息、表的约束条件、统计分析数据库的视图等。 我们不能手工修改数据字典里的信息。 很多时候,一般的ORACLE用户不知道如何有效地利用它。 dictionary...