首页 | 源码下载 | 网站模板 | 网页特效 | 广告代码 | 网页素材 | 字体下载 | 书库 | 站长工具
会员投稿 投稿指南 RSS订阅
当前位置:主页>网络编程>java教程>资讯:使用Java和oracle实现BLOB字段的字符串读取

使用Java和oracle实现BLOB字段的字符串读取

www.jz123.cn  2009-08-05   来源:   中国建站    责任编辑(袁袁)    我要投递新闻

  java能够调用Oracle的存储过程,反之oracle也能用java来开发外部存储过程,这样java和oracle的相互界限就已经不明确了。

  当然关系型数据库最好做自己应该做的事情而不是大包大揽做所有的非数据库应该做的事情。

  ——开发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转换为字节数组

  byte[] bytes; //BLOB临时存储字节数组

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

  int i=1; //循环变量

  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字节

  return newStr;

  }

  }

  catch(Exception e) //oracle异常捕获

  {

  e.printStackTrace();

  }

  return newStr;

  }

  }

  ——然后在Oracle中把这个类导入成为一个函数,执行命令

  create or replace function ConvertBLOB(blobObject BLOB)

  return varchar2

  as language java name

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

  ——执行相应的操作

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

  以上代码均在PL/SQL developer中开发并调试通过。


上一篇:junit单元测试使用方法 下一篇:代码保镖——Java代码混淆器

评论总数:0 [ 查看全部 ] 网友评论


关于我们隐私版权广告服务友情链接联系我们网站地图