转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> ORACLE >> 正文
关于Oracle9i中BLOB类型的操作         ★★★★

关于Oracle9i中BLOB类型的操作

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1571 更新时间:2009/4/22 22:04:08

关于Oracle9iBLOB类型的操作

因为JDBC2.0没有完全实现对BLOB的操作,所以在读写Oracle中的BLOB类型的数据时必须使用Oracle的扩展包(classes12.jar)。

1.BLOB写操作

11 BLOBjava操作

      ............

        //调用写BLOB的存储过程

       String sql ="{call INSERT_BLOB(?)} ";

        //取得数据库连接

       Connection conn = dao.createCoon();

       CallableStatement proc = conn.prepareCall(sql);

        //设置字节数组

       proc.setBytes(1, blob);

        //执行存储过程

       proc.execute();

        //释放连接

       proc.close();

       conn.close();

      ............

 

12 BLOBORACLE存储过程

PROCEDURE INSERT_BLOB

  (BLOBDATA IN BLOB_TABLE_XX%TYPE)   --BLOB

AS

lobd  blob;

BEGIN

  SET TRANSACTION NAME ''''insertblob'''';

  --往BLOB_TABLE_XX表内的BLOB_ROW_XX列插入空的BLOB

  INSERT INTO BLOB_TABLE_XX (BLOB_ROW_XX) VALUES (EMPTY_BLOB());

  --定位刚插入的BLOB

  SELECT SERVICE_IMG INTO lobd FROM BLOB_TABLE_XX WHERE XXX = XXX FOR UPDATE;

  --将内容写进刚插入的BLOB

  dbms_lob.write(lobd, utl_raw.length(BLOBDATA),1, BLOBDATA);

  --事务提交

  COMMIT;

  EXCEPTION

   WHEN OTHERS THEN

      BEGIN

      ROLLBACK;--出错后进行事务回滚

      END;

END;

 

2.BLOB读操作

21 BLOBORACLE存储过程

create or replace package body BLOB_PKG_XXX is

 

  TYPE CURSORTYPE IS REF CURSOR;

 

FUNCTION QUERY_BLOB 

   RETURN BLOB_PKG_XXX.CURSORTYPE

AS

  L_CURSOR BLOB_PKG_XXX.CURSORTYPE

BEGIN

  OPEN L_CURSOR FOR SELECT BLOB_ROW_XX

                      FROM BLOB_TABLE_XX

                     WHERE XXX = XXX ;

  RETURN L_CURSOR;

 

END;

 

END BLOB_PKG_XXX;

22 BLOBjava操作

       /**

        * Method getBlobBytes.把BLOB内的内容读出并存入一个字节数组中

        * @param blob

        * @return byte[]

        * @throws SQLException

        * @throws IOException

        */

       public byte[] getBlobBytes(BLOB blob) throws SQLException, IOException {

              //取得BLOB的IO流

BufferedInputStream ins =

                     new BufferedInputStream(blob.getBinaryStream());

        //取得BLOB的长度

              int bufferSize = (int) blob.length();

              //建立字节缓存

byte[] bt = new byte[bufferSize];

//把BLOB内容写入缓存

             

[1] [2]  下一页


[ORACLE]Oracle中Blob字段的写入处理(一)  [ORACLE]如何通过struts以oci协议将文件上传到oracle数据库…
[ORACLE]如何在oracle里面操作BLOB  [ORACLE]操作Oracle数据库实现上传图片到Blob类型的字段出…
[ORACLE]下载Oracle数据库中的Blob二进制文件,实例!  [ORACLE]oracle+jsp中blob类型存储大文本问题解决方法
[ORACLE]在Oracle中存取BLOB对象实现文件的上传和下载  [ORACLE]在Java中使用Oracle blob
[ORACLE]c# ,在Oracle 中,对 blob 类型对象的操作  [ORACLE]servlet实现从oracle数据库的blob字段中读出文件并…
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台