導航:首頁 > 編程語言 > javaoracle寫入clob

javaoracle寫入clob

發布時間:2024-10-18 14:07:04

㈠ 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();
}
希望樓主採納

㈡ oracle 中存儲大量文字信息用什麼欄位,java後台怎麼實現,請舉例。謝謝。

在oracle中存儲大量的文字應該是用CLOB欄位來存儲。這種類型在用java將數據存進資料庫中時比較簡單,直接將String類型的文本寫入就可以了。但是在從資料庫中讀取CLOB類型的數據到java中時比較麻煩,因為你是拿不到數據的,只能拿到這個欄位的一個隱式指針,然後還要通過輸入流來拿到。

㈢ oracle的Clob類型在java的增。改、差。要對6000字元進行操作,普通的string不行。知道的。。。。。

好像在java中有提供Clob這個類型的數據。你可以直接聲明一個Clob類型變數存儲查詢結果,然後直接對Clob變數進行操作。
具體方法可以查看API

㈣ JAVA讀取Oracle資料庫Clob欄位轉換成String問題

getClob,可以獲得CLOB欄位的值,用
rs.getString無法得到
數據
,返回的

NULL;

㈤ java 大字元串轉為二進制流存入CLOB欄位 JDBC方法

dbField.getFieldValue().toString().getBytes();
上面這個值有嗎?取到了嗎?
下面是我以前一個項目的

InputStream pic = new FileInputStream(dto.get(i).getLibPic());

sql = "INSERT INTO piclib (name,pic,sign,remark) VALUES (?,?,?,?)";

pstmt = con.prepareStatement(sql);
pstmt.setString(1, dto.get(i).getName());
pstmt.setBinaryStream(2,pic,(int)dto.get(i).getLibPic().length());

㈥ java在oracle資料庫中怎麼插入讀取CLOB值

參考:
/**
* 寫入、更新CLOB欄位的代碼示例
*/
public void writeClob() {
//自定義的資料庫連接管理類
Connection conn = DbManager.getInstance().getConnection();
try {
conn.setAutoCommit(false);
// 1.這種方法寫入CLOB欄位可以。
PreparedStatement stat = conn
.prepareStatement("insert into t_clob (id,clobfield) values(sys_guid(),?)");
String clobContent = "This is a very very long string";
StringReader reader = new StringReader(clobContent);
stat.setCharacterStream(1, reader, clobContent.length());
stat.executeUpdate();

// 2.使用類似的方法進行更新CLOB欄位,則不能成功
// stat.close();
// stat =null;
// stat =
// conn.prepareStatement("update t_clob set clobfield=? where id=1");
// stat.setCharacterStream(1, reader, clobContent.length());
// stat.executeUpdate();

// 3.需要使用for update方法來進行更新,
// 但是,特別需要注意,如果原來CLOB欄位有值,需要使用empty_clob()將其清空。
// 如果原來是null,也不能更新,必須是empty_clob()返回的結果。
stat = conn
.prepareStatement("select clobfield from t_clob where id='1' for update");
ResultSet rs = stat.executeQuery();
if (rs.next()) {
oracle.sql.CLOB clob = (oracle.sql.CLOB) rs
.getClob("clobfield");
Writer outStream = clob.getCharacterOutputStream();
char[] c = clobContent.toCharArray();
outStream.write(c, 0, c.length);
outStream.flush();
outStream.close();
}
conn.commit();
} catch (SQLException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

DbManager.getInstance().closeConnection(conn);

}

閱讀全文

與javaoracle寫入clob相關的資料

熱點內容
c盤中的哪些是系統文件夾 瀏覽:668
分布式服務如何跨庫統計數據 瀏覽:829
力控轉發數據客戶端模式如何建立 瀏覽:200
怎麼樣讓自己的網站不被別人看到 瀏覽:711
編程擴展效果如何 瀏覽:335
榮耀暢玩手環同步qq 瀏覽:475
怎麼向sql中添加資料庫 瀏覽:596
錄歌失敗重啟app什麼意思 瀏覽:522
壓縮文件包怎麼在微信發送 瀏覽:432
mysql資料庫怎麼插入時間值 瀏覽:191
微信視頻不能轉發朋友圈 瀏覽:596
影視後期的app有哪些 瀏覽:956
電子保單數據出錯什麼意思 瀏覽:368
如何以文件下載音樂 瀏覽:438
計算機網路章節練習 瀏覽:999
單片機的外部中斷程序 瀏覽:48
表格批量更名找不到指定文件 瀏覽:869
js的elseif 瀏覽:584
3dmaxvray視頻教程 瀏覽:905
imgtool工具中文版 瀏覽:539

友情鏈接