注:本文来源于:《oracle中Blob和Clob类型的区别》
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();