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 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mysql中 text和blob字段类型比较区别

http://www.path8.net/tn/archives/955 1.blob是二进制大对象,可以容纳可变量数量的数据,其中blob分为4中类型:TINYBLOB,BLOB,mediumblo...
  • pestd
  • pestd
  • 2011-06-19 11:38
  • 319

BLOB字段类型的示例

JDBC中BLOB字段类型的示例 测试数据库MYSQL 测试表: CREATE TABLE `jdbc`.`blob_test` (   `id` INTEGER NOT NULL...

oracle字段类型blob,clob,nclob

高手znp的面试必问问题其中之一就是这个,另一个是JAVA的8种基本数据类型。 今天咱也好好学学这个东西。 说明:三种大型对象(LOB),用来保存较大的图形文件或带格式的文本文件,如Miceoso...
  • e_wsq
  • e_wsq
  • 2011-12-13 20:02
  • 490

Oracle 11g PL/SQL程序块,存储图片等BLOB字段类型的列PL/

Oracle 11g PL/SQL程序块,存储图片等BLOB字段类型的列 例如:把一个人的图片放入PERSON表的photo列中 一、在Oracle中创建,一个存储图片的目录逻辑,其与硬盘中的图片存储...

Oracle字段类型char、varchar2、nvarchar2的区别与使用

四个类型都属于变长字符类型, varchar和varchar2的区别在与后者把所有字符都占两字节,前者只对汉字和全角等字符占两字节。 nvarchar和nvarchar2的区别和上面一样,   与上面...

dbf字段类型修改

  • 2017-04-20 15:43
  • 1.47MB
  • 下载

mysql字段类型MicrosoftAccess、MySQL以及SQLServer所使用的数据类型

自:By xinyinglaishi   at 2014-04-03   11 阅读   0 回复   0.0 希赛币 mysql字段类型   Microsoft Access、MySQL...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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