導航:首頁 > 編程語言 > 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相關的資料

熱點內容
醫院各系統網路如何設計 瀏覽:304
微信分享自定義描述 瀏覽:161
學信網畢業去向是什麼app 瀏覽:196
查詢電話卡綁定了什麼app 瀏覽:210
旺旺如何更改密碼 瀏覽:538
編程接龍怎麼弄 瀏覽:29
如何安裝cia文件 瀏覽:829
iphone靜電干擾 瀏覽:105
echartsjs動態載入數據 瀏覽:161
css怎麼引用字體文件 瀏覽:998
改文件名後綴無法播放 瀏覽:229
安卓手機怎麼查找我的iphone 瀏覽:848
vonfig是什麼文件夾 瀏覽:897
想找圖片資源網站有哪些 瀏覽:914
計算機系如何提高編程能力 瀏覽:58
1對1的數據結構有哪些 瀏覽:442
哪裡能導出大盤數據 瀏覽:401
酒店如何設置有線網路 瀏覽:576
手機登錄微雲怎麼改數據 瀏覽:321
linux任務欄配置文件 瀏覽:844

友情鏈接