字段類型
blob
clob
nclob
說明
三種大型對象(LOB)
用來保存較大的圖形文件或帶格式的文本文件
如Miceosoft Word文檔
以及音頻
視頻等非文本文件
最大長度是
GB
LOB有幾種類型
取決於你使用的字節的類型
Oracle
i實實在在地將這些數據存儲在數據庫內部保存
可以執行讀取
存儲
寫入等特殊操作
我們所操作的clobtest_table中屬性是(字符型id
CLOB型picstr)
目前我們假設一個大的字符對象str已經包含了我們需要存入picstr字段的數據
而且connection對象conn已經建立
以下的例子程序也因為不想占用太多的空間
所以對拋出異常沒有寫
大家參考一下api doc
就可以知道該拋出什麼異常了
此處僅僅告訴大家如何去寫
代碼
(
)對數據庫clob型執行插入操作
*************************************************
java
sql
PreparedStatement pstmt = null;
ResultSet rs = null;
String query =
;
conn
setAutoCommit(false);
query =
insert into clobtest_table(id
picstr) values(?
empty_clob())
;
java
sql
PreparedStatement pstmt = conn
prepareStatement(query);
pstmt
setString(
);
pstmt
executeUpdate();
pstmt = null
query =
select picstr from clobtest_table where id =
for update
;
pstmt = con
prepareStatement(query)
rs= pstmt
executeQuery();
oracle
sql
CLOB clobtt = null;
if(rs
next()){
clobtt = (oracle
sql
CLOB)rs
getClob(
);
}
Writer wr = clobtt
getCharacterOutputStream();
wr
write(strtmp);
wr
flush();
wr
close();
rs
close();
mit();
(
)通過sql/plus查詢是否已經成功插入數據庫
*************************************************
PL/SQL的包DBMS_LOB來處理LOB數據
察看剛才的插入是否成功
使用DBMS_LOB包的getlength這個procedure來檢測是否已經將str存入到picstr字段中了
如
SQL> select dbms_lob
getlength(picstr) from clobtest_table;
(
)對數據庫clob型執行讀取操作
*************************************************
讀取相對插入就很簡單了
基本步驟和一半的取數據庫數據沒有太大的差別
String description =
query =
select picstr from clobtest_table where id =
;
pstmt = con
prepareStatement(query);
ResultSet result = pstmt
executeQuery();
if(result
next()){
oracle
jdbc
driver
OracleResultSet ors =
(oracle
jdbc
driver
OracleResultSet)result;
oracle
sql
CLOB clobtmp = (oracle
sql
CLOB) ors
getClob(
);
if(clobtmp==null || clobtmp
length()==
){
System
out
println(
======CLOB對象為空
);
description =
;
}else{
description=clobtmp
getSubString((long)
(int)clobtmp
length());
System
out
println(
======字符串形式
+description);
}
}
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25791.html