国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > Java > 正文

使用Java和oracle實現(xiàn)BLOB字段的字符串讀取

2024-07-14 08:44:01
字體:
來源:轉載
供稿:網(wǎng)友

  java能夠調用Oracle的存儲過程,反之oracle也能用java來開發(fā)外部存儲過程,這樣java和oracle的相互界限就已經(jīng)不明確了。

  當然關系型數(shù)據(jù)庫最好做自己應該做的事情而不是大包大攬做所有的非數(shù)據(jù)庫應該做的事情。

  ——開發(fā)java類

  create or replace and compile java source named BLOBObject as

  package MyOracle.BLOB; --自己定義的package

  import java.io.*; --外部引用到的java包

  import oracle.sql.*;

  public class BLOBObject

  {

  public static String ConvertBLOBtoString(oracle.sql.BLOB BlobContent)

  {

  byte[] msgContent= BlobContent.getBytes(); //BLOB轉換為字節(jié)數(shù)組

  byte[] bytes; //BLOB臨時存儲字節(jié)數(shù)組

  String newStr = ""; //返回字符串

  int i=1; //循環(huán)變量

  long BlobLength; //BLOB字段長度

  try

  {

  BlobLength=BlobContent.length(); //獲取BLOB長度

  if (msgContent == null || BlobLength==0) //如果為空,返回空值

  {

  return "";

  }

  else //處理BLOB為字符串

  {

  /*

  while(i

  {

  bytes= BlobContent.getBytes(i,1024) ;

  i=i+1024;

  newStr = newStr+new String(bytes,"gb2312";

  }

  */

  newStr = new String(BlobContent.getBytes(1,900),"gb2312"+"...."; //簡化處理,只取前900字節(jié)

  return newStr;

  }

  }

  catch(Exception e) //oracle異常捕獲

  {

  e.printStackTrace();

  }

  return newStr;

  }

  }

  ——然后在Oracle中把這個類導入成為一個函數(shù),執(zhí)行命令

  create or replace function ConvertBLOB(blobObject BLOB)

  return varchar2

  as language java name

  'MyOracle.BLOB.BLOBObject.ConvertBLOBtoString(oracle.sql.BLOB) return java.lang.String';

  ——執(zhí)行相應的操作

  select ConvertBLOB(BLOBField),dbms_lob.getlength(BLOBField),BLOBFieldfrom TableName

  以上代碼均在PL/SQL developer中開發(fā)并調試通過。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 海林市| 钟山县| 绍兴县| 岳阳县| 扶沟县| 长宁县| 武宁县| 黄浦区| 汶川县| 蕉岭县| 石棉县| 都匀市| 鄂托克前旗| 灵石县| 平远县| 屏东县| 焉耆| 同心县| 大同县| 库尔勒市| 文山县| 梁山县| 阿图什市| 新郑市| 修文县| 册亨县| 朝阳区| 南康市| 勃利县| 穆棱市| 根河市| 台东市| 金塔县| 康马县| 沙坪坝区| 景德镇市| 扬中市| 东莞市| 龙胜| 固阳县| 江源县|