国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 萍乡市| 德惠市| 湘阴县| 中山市| 星子县| 神农架林区| 曲周县| 武义县| 互助| 明水县| 闽侯县| 中牟县| 沁阳市| 探索| 樟树市| 正镶白旗| 巴林左旗| 屯昌县| 四平市| 大冶市| 利津县| 甘洛县| 宁海县| 永寿县| 塔河县| 乌兰察布市| 兴文县| 林甸县| 中方县| 黄冈市| 突泉县| 堆龙德庆县| 沛县| 伊吾县| 伊宁市| 绥中县| 刚察县| 澄城县| 偏关县| 双峰县| 涡阳县|