資源描述:
《用java和oracle讀取 blob字段字符串》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、用Java和oracle讀取BLOB字段的字符串核心提示:java能夠調(diào)用Oracle的存儲過程,反之oracle也能用java來開發(fā)外部存儲過程,這樣java和oracle的相互界限就已經(jīng)不明確了。 java能夠調(diào)用Oracle的存儲過程,反之oracle也能用java來開發(fā)外部存儲過程,這樣java和oracle的相互界限就已經(jīng)不明確了。 當(dāng)然關(guān)系型數(shù)據(jù)庫最好做自己應(yīng)該做的事情而不是大包大攬做所有的非數(shù)據(jù)庫應(yīng)該做的事情?! _發(fā)java類 createorreplaceandcompilejavasourcenamedBLOBObject
2、as packageMyOracle.BLOB;--自己定義的package importjava.io.*;--外部引用到的java包 importoracle.sql.*; publicclassBLOBObject { publicstaticStringConvertBLOBtoString(oracle.sql.BLOBBlobContent) { byte[]msgContent=BlobContent.getBytes();//BLOB轉(zhuǎn)換為字節(jié)數(shù)組 byte[]bytes;//BLOB臨時存儲字節(jié)數(shù)組 Stringn
3、ewStr="";//返回字符串 inti=1;//循環(huán)變量 longBlobLength;//BLOB字段長度 try { BlobLength=BlobContent.length();//獲取BLOB長度 if(msgContent==null
4、
5、BlobLength==0)//如果為空,返回空值 { return""; } else//處理BLOB為字符串 { /* while(i { bytes=BlobContent.getBytes(i,1024); i=i+1024; newStr=newStr+new
6、String(bytes,"gb2312"; } */ newStr=newString(BlobContent.getBytes(1,900),"gb2312"+"....";//簡化處理,只取前900字節(jié) returnnewStr; } } catch(Exceptione)//oracle異常捕獲 { e.printStackTrace(); } returnnewStr; } } ——然后在Oracle中把這個類導(dǎo)入成為一個函數(shù),執(zhí)行命令 createorreplacefunctionConvertBLOB(blo
7、bObjectBLOB) returnvarchar2 aslanguagejavaname 'MyOracle.BLOB.BLOBObject.ConvertBLOBtoString(oracle.sql.BLOB)returnjava.lang.String'; ——執(zhí)行相應(yīng)的操作 selectConvertBLOB(BLOBField),dbms_lob.getlength(BLOBField),BLOBFieldfromTableName 以上代碼均在PL/SQLdeveloper中開發(fā)并調(diào)試通過。