Blob字段类型的使用实例

原创 2006年06月05日 17:58:00

在开发过程中,有时候需要使用Blob字段来存储大对象, 下面是使用blob的操作的过程实例使用, 根据情况修改后使用. 需要相应的权限.

创建目录.

SQL> create directory lob_dir as 'd:/test';

--加载Blob

create or replace procedure load_blob
(
    p_name in varchar2,
    p_desc in varchar2
) as
    fbfile bfile;
    lgh_file BINARY_INTEGER;
    dest_file blob;
begin
    insert into test_blob values(1,p_name,p_desc,empty_blob());
    select a.pic into dest_file from test_blob a where a.id=1 and rownum=1 for update ;
    fbfile:=bfilename('LOB_DIR',p_name);
    dbms_lob.fileopen(fbfile,dbms_lob.file_readonly);
    lgh_file:=dbms_lob.getlength(fbfile);
    dbms_lob.loadfromfile(dest_file,fbfile,lgh_file);
    update test_blob t set t.pic=dest_file where t.id=1;
    dbms_lob.fileclose(fbfile);
    commit;
end ;
/

--提取Blob

CREATE OR REPLACE PROCEDURE extract_blob (poname varchar2) IS
  l_file      UTL_FILE.FILE_TYPE;
  l_buffer    RAW(32767);
  l_amount    BINARY_INTEGER := 32767;
  l_pos       INTEGER := 1;
  l_blob      BLOB;
  l_blob_len  INTEGER;
BEGIN
  SELECT PIC
  INTO      l_blob
  FROM      test_blob
  WHERE  id=1 and rownum=1;
  l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
  l_file := UTL_FILE.FOPEN('LOB_DIR',poname,'wb', 32767);
  WHILE l_pos < l_blob_len LOOP
    DBMS_LOB.READ (l_blob, l_amount, l_pos, l_buffer);
    UTL_FILE.PUT_RAW(l_file, l_buffer, TRUE);
     l_pos := l_pos + l_amount;
   END LOOP;
    UTL_FILE.FCLOSE(l_file);
 EXCEPTION
   WHEN OTHERS THEN
     IF UTL_FILE.IS_OPEN(l_file) THEN
       UTL_FILE.FCLOSE(l_file);
      END IF;
     RAISE;
 END;
/

#  Dinya 

 

Oracle中的BLOB和CLOB字段类型的区别

Oracle中的BLOB和CLOB字段类型的区别1、BLOB是按二进制来存储的,而CLOB是可以直接存储文字的;2、BLOB字段可以存储图片、文件和音乐等,而CLOB可以存储文章或较长文字的内容。...
  • you23hai45
  • you23hai45
  • 2016-02-24 23:53:57
  • 5836

oracle数据库中字段值的类型blob和clob是什么和两者的区别

最近在观察一个系统时,发现其数据库的字段上有一种CLOB类型,特地搜索整理后,明白。 BLOB和CLOB属于大字段类型,BLOB是二进制存储,CLOB是可直接存储文字。两者可相互转换,也可以直接用L...
  • qq_31302091
  • qq_31302091
  • 2017-06-13 15:19:12
  • 1355

用sql语句写入含blob类型字段的数据

一.-- 创建表空间TeacherSpace CREATE TABLESPACE TeacherSpace DATAFILE 'TeacherDFile.dbf' SIZE 10M ...
  • qjc_501165091
  • qjc_501165091
  • 2016-04-23 13:55:05
  • 6697

blob字段类型

BLOB的定义 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。   在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。 ...
  • GISSTAR
  • GISSTAR
  • 2011-09-15 17:30:41
  • 2015

使用 BLOB 类型字段

vfp9 中增加了 blob 型字段,这可是个好东西!用它来存储图像数据最合适,与 SQL 的交换也很顺利,接下来就是使用它了。使用它当然无外乎是显示/打印图像;显示很简单,表单上放一个 Image ...
  • dkfdtf
  • dkfdtf
  • 2008-09-05 23:32:00
  • 5322

数据库中的BLOB字段--存图片等文件

我们大家都知道Oracle数据库的Blob是一个较为特殊字段,它比long字段的实际应用性能更为好,它的主要功能是用来保存类似图片之类的相关二进制的数据。以下就是文章的中主要内容的介绍。写入Blob字...
  • qq_33530388
  • qq_33530388
  • 2017-03-24 17:58:41
  • 1808

[JS进阶] JS 之Blob 对象类型

Blob 是什么? 这里说的是一种Javascript的对象类型。 oracle 中也有类似的栏位类型。 在 [JS进阶] HTML5 之文件操作(file) 这一篇中用到了File对象,而实际...
  • oscar999
  • oscar999
  • 2014-11-30 21:23:01
  • 86450

Blob操作实例

 以Mysql数据库为例,  完成图片的简单存储, 查询操作来说明Blob的应用import java.io.File;import java.io.FileInputStream;import ja...
  • DeluxWorld
  • DeluxWorld
  • 2007-07-05 13:56:00
  • 1084

MySQL的BLOB类型

BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。BLOB是一 个大文件,典型的...
  • tashanhongye
  • tashanhongye
  • 2015-10-14 20:36:24
  • 5209

关于 HTML5 的文件上传处理,兼容,以及 BLOB 对象的使用

目前 HTML5 已经逐渐普及并成为主流,与之相关的 Single Page App 技术也逐渐被广泛应用起来,加上 Canvas 等等新的工具的支持,在前端可以做的事情可谓是非常多。 但是...
  • moonpure
  • moonpure
  • 2016-01-05 13:45:05
  • 21824
收藏助手
不良信息举报
您举报文章:Blob字段类型的使用实例
举报原因:
原因补充:

(最多只允许输入30个字)