程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 使用java操作Oracle數據庫中的CLOB數據類型

使用java操作Oracle數據庫中的CLOB數據類型

編輯:關於JAVA

字段類型:blob,clob,nclob

說明:三種大型對象(LOB),用來保存較大的圖形文件或帶格式的文本文件,如Miceosoft Word文檔,以及音頻、視頻等非文本文件,最大長度是4GB。LOB有幾種類型,取決於你使用的字節的類型,Oracle 8i實實在在地將這些數據存儲在數據庫內部保存。可以執行我們所操作的clobtest_table中屬性是(字符型id,CLOB型picstr),目前我們假設一個大的字符對象str已經包含了我們需要存入picstr字段的數據。而且connection對象conn已經建立。以下的例子程序也因為不想占用太多的空間,所以對拋出異常沒有寫。大家參考一下api doc。就可以知道該拋出什麼異常了,此處僅僅告訴大家如何去寫。

代碼:

(1)對數據庫clob型執行插入操作

*************************************************

java.sql.PreparedStatement pstmt = ;
ResultSet rs = ;
String query = ;

conn.setAutoCommit(false);
query = insert into clobtest_table(id,picstr) values(?,empty_clob());
java.sql.PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setString(1,001);
pstmt.executeUpdate();
pstmt =
query = select picstr from clobtest_table where id = 001 for
pstmt = con.prepareStatement(query)
rs= pstmt.executeQuery();

oracle.sql.CLOB clobtt = ;
if(rs.next()){
clobtt = (oracle.sql.CLOB)rs.getClob(1);
}
Writer wr = clobtt.getCharacterOutputStream();
wr.write(strtmp);
wr.flush();
wr.close();
rs.close();
con.commit();

(2)通過sql/plus查詢是否已經成功插入數據庫

*************************************************

PL/SQL的包DBMS_LOB來處理LOB數據。察看剛才的插入是否成功。使用DBMS_LOB包的getlength這個procedure來檢測是否已經將str存入到picstr字段中了。如:

SQL> select dbms_lob.getlength(picstr) from clobtest_table;

(3)對數據庫clob型執行讀取操作

*************************************************

讀取相對插入就很簡單了。基本步驟和一半的取數據庫數據沒有太大的差別。

String description =
query = select picstr from clobtest_table where id = 001;
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(1);

if(clobtmp== || clobtmp.length()==0){
System.out.println(======CLOB對象為空 );
description = ;
}else{
description=clobtmp.getSubString((long)1,(int)clobtmp.length());
System.out.println(======字符串形式 description);
}
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved