oracle中Blob和Clob类型的区别

时间:2022-09-07 08:16:49

1.BLOB   
 BLOB全称为二进制大型对象(Binary   Large   Object)。它用于存储数据库中的大型二进制对象。可存储的最大大小为4G字节   
2.CLOB   
 CLOB全称为字符大型对象(Character   Large   Object)。它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节

     通常像图片、文件、音乐等信息就用BLOB字段来存储,先将文件转为二进制再存储进去。而像文章或者是较长的文字,就用CLOB存储,这样对以后的查询更新存储等操作都提供很大的方便。

JAVA里面对CLOB的操作

  在绝大多数情况下,使用2种方法使用CLOB

  1 相对比较小的,可以用String进行直接操作,把CLOB看成字符串类型即可

  2 如果比较大,可以用 getAsciiStream 或者 getUnicodeStream 以及对应的 setAsciiStream 和 setUnicodeStream 即可

  读取数据

1 ResultSet rs = stmt.executeQuery("SELECT TOP 1 * FROM Test1");
2 rs.next();
3 Reader reader = rs.getCharacterStream(2);

  插入数据 

1 PreparedStatement pstmt = con.prepareStatement("INSERT INTO test1 (c1_id, c2_vcmax) VALUES (?, ?)");
2 pstmt.setInt(1, 1);
3 pstmt.setString(2, htmlStr);
4 pstmt.executeUpdate();

  更新数据

1 Statement stmt = con.createStatemet();
2 ResultSet rs = stmt.executeQuery("SELECT * FROM test1");
3 rs.next();
4 Clob clob = rs.getClob(2);
5 long pos = clob.position("dog", 1);
6 clob.setString(1, "cat", len, 3);
7 rs.updateClob(2, clob);
8 rs.updateRow();