oracle存儲超長文本
⑴ oracle 中存儲大量文字信息用什麼欄位,java後台怎麼實現,請舉例。謝謝。
在oracle中存儲大量的文字應該是用CLOB欄位來存儲。這種類型在用java將數據存進資料庫中時比較簡單,直接將String類型的文本寫入就可以了。但是在從資料庫中讀取CLOB類型的數據到java中時比較麻煩,因為你是拿不到數據的,只能拿到這個欄位的一個隱式指針,然後還要通過輸入流來拿到。
⑵ 在oracle里存大量文本信息,應該用什麼類型
大量文本用clob類型。
sql CLOB 是內置類型,它將字元大對象 (Character Large Object) 存儲為資料庫表某一行中的一個列值。默認情況下,驅動程序使用 SQL locator(CLOB) 實現 Clob 對象,這意味著 CLOB 對象包含一個指向 SQL CLOB 數據的邏輯指針而不是數據本身。Clob 對象在它被創建的事務處理期間有效。
⑶ oracle資料庫怎麼存儲長文本的欄位
BLOB :大數據類型,最大存儲65K,不可以被導出,只能在oracle資料庫中進行查看。 擴展: BLOB (binary large object),二進制大對象,是一個可以存儲二進制文件的容器。在計算機中,BLOB常常是資料庫中用來存儲二進制文件的欄位類型。
⑷ oracle資料庫超長文本用哪種類型儲存比較好
clob類型,但對於這個類型處理起來還是比較麻煩的,varchar2長度為4000bytes,如果varchar2能滿足樓主的需求,建議使用varchar2,下面提供了在Java 中讀取clob類型的方式,我主要講的是JDBC的操作,Hibernate目前不講,操作這個Clob列主要分為插入和獲取倆個操作:
1、Java程序插入Clob值到Oracle資料庫表中:
String clob= "這里主要是要插入到表中的值";//前面具體資料庫連接代碼這里省略,直接進正題String sql = "insert into clob_test(id,str) values (1,?)";PreparedStatement stmt = conn.prepareStatement(sql);// 將clob轉成流形式
Reader clobReader = new StringReader(clob);stmt.setCharacterStream(1,clobReader,clob.length());// 替換sql語句中的?
stmt.executeUpdate();
2、讀取Clob列的值
String sql = "select str from clob_test where id=1";PreparedStatement stmt = conn.prepareStatement(sql);ResultSet rs = stmt.executeQuery();
//最後獲得的結果
String resultClob;
if(rs.next()){
//導入oracle.sql.CLOB包,或者直接引用這個包oracle.sql.CLOB clob = rs.getClob("str");Reader rd= clob.getCharacterStream();// 得到流BufferedReader br = new BufferedReader(rd);String s = br.readLine();
StringBuffer sb= new StringBuffer();
while (s != null) {
// 循環賦值
sb.append(s);
s = br.readLine();
}
clobResult = sb.toString();
}