oracle中讀寫blob字段的問題解析建站知識(shí)
導(dǎo)讀:1建站知識(shí)這篇文章以程序?qū)嵗f明通過JDBC操縱Oracle數(shù)據(jù)庫LOB類型字段的幾種情況網(wǎng)站建設(shè)網(wǎng)站推廣優(yōu)化seo。
LOB類型分為BLOB和CLOB兩種:BLOB即二進(jìn)制大型對(duì)像(Binary Large Object),適用于存貯非文本的字節(jié)流數(shù)據(jù)(如程序、圖像、影音等)。而CLOB,即字符型大型對(duì)像(Character Large Object),則與字符集相關(guān),適于存貯文本型的數(shù)據(jù)(如歷史檔案、大部頭著作等)。 下面以程序?qū)嵗f明通過JDBC操縱Oracle數(shù)據(jù)庫LOB類型字段的幾種情況。
先建立如下兩個(gè)測(cè)試用的數(shù)據(jù)庫表,Power Designer PD模型如下:
建表SQL語句為:CREATE TABLE TEST_CLOB ( ID NUMBER(3), CLOBCOL CLOB)CREATE TABLE TEST_BLOB ( ID NUMBER(3), BLOBCOL BLOB)
一、 CLOB對(duì)象的存取
1、往數(shù)據(jù)庫中插入seo網(wǎng)站排名優(yōu)化軟件一個(gè)新的CLOB對(duì)像
復(fù)制代碼 代碼網(wǎng)站seo優(yōu)化如下:
public static void clobInsert(String infile) throws Exception{/* 設(shè)定不自動(dòng)提交 */boolean defaultCommit = conn.getAutoCommit();conn.setAutoCommit(false);
try {/* 插入一個(gè)空的CLOB對(duì)像 */stmt.executeUpdate("INSERT INTO TEST_CLOB VALUES ('111', EMPTY_CLOB())");/* 查詢此CLOB對(duì)象并鎖定 */ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM TEST_CLOB WHERE FOR UPDATE");while (rs.next()) {/* 取出此CLOB對(duì)像 */oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");/* 向CLOB對(duì)像中寫入數(shù)據(jù) */BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());BufferedReader in = new BufferedReader(new FileReader(infile));int c;while ((c=in.read())!=-1) {out.write(c);}in.close();out.close();}/* 正式提交 */conn.commit();} catch (Exception ex) {/* 出錯(cuò)回滾 */conn.rollback();throw ex;}
/* 恢復(fù)原提交狀態(tài) */conn.setAutoCommit(defaultCommit);}
2、修改CLOB對(duì)像(是在原CLOB對(duì)像基礎(chǔ)上進(jìn)行覆蓋式的修改)
復(fù)制代碼 代碼如下:
public static void clobModify(String infile) throws Exception{/* 設(shè)定不自動(dòng)提交 */boolean defaultCommit = conn.getAutoCommit();conn.setAutoCommit(false);
try {/* 查詢CLOB對(duì)象并鎖定 */ResultSet rs = stmt.executeQuery("SELECT CLOBCOL FROM TEST_CLOB WHERE FOR UPDATE");while (rs.next()) {/* 獲取此CLOB對(duì)像 */oracle.sql.CLOB clob = (oracle.sql.CLOB)rs.getClob("CLOBCOL");/* 進(jìn)行覆蓋式修改 */BufferedWriter out = new BufferedWriter(clob.getCharacterOutputStream());BufferedReader in = new BufferedReader(new FileReader(infile));int c;while ((c=in.read())!=-1) {out.write(c);}in.close();out.close();}/* 正式提交 */conn.commit();} catch (Exception ex) {/* 出錯(cuò)回滾 */conn.rollback();throw ex;}
/* 恢復(fù)原提交狀態(tài) */conn.setAutoCommit(defaultCommit);}
3、替換CLOB對(duì)像(將原CLOB對(duì)像清除,換成一個(gè)全新的CLOB對(duì)像)
復(fù)制代碼 代碼如下:
public static void clobReplace(String infile) throws Exception{/* 設(shè)定不自動(dòng)提交 */boolean defaultCommit = conn.getAutoCommit();conn.setAutoCommit(false);
聲明: 本文由我的SEOUC技術(shù)文章主頁發(fā)布于:2023-05-22 ,文章oracle中讀寫blob字段的問題解析建站知識(shí)主要講述字段,標(biāo)簽,oracle中讀寫blob字段的問題解析建站知網(wǎng)站建設(shè)源碼以及服務(wù)器配置搭建相關(guān)技術(shù)文章。轉(zhuǎn)載請(qǐng)保留鏈接: http://www.bifwcx.com/article/web_5228.html
為你推薦與oracle中讀寫blob字段的問題解析建站知識(shí)相關(guān)的文章
-
通王TWCMS 2.0.3網(wǎng)站模板程序下載
(126)人喜歡 2024-01-15 -
Windows官方原版在哪里下載
(175)人喜歡 2024-01-15 -
WordPress網(wǎng)站模板發(fā)帖標(biāo)題顏色設(shè)置
(131)人喜歡 2024-01-07 -
修改discuz論壇帖子標(biāo)題80字符的長(zhǎng)度限制
(249)人喜歡 2024-01-07 -
wordpress程序調(diào)用不帶超鏈接的Tag標(biāo)簽
(234)人喜歡 2024-01-05 -
網(wǎng)站在不同時(shí)期需調(diào)整內(nèi)容更新的方向
(112)人喜歡 2023-08-12