一、授权用户及创建目录

SQL> grant CREATE ANY DIRECTORY to user;

Grant succeeded.

SQL> conn user/password

Connected.

SQL> create or replace directory BLOBDIR as '/home/oracle/picDir';

Directory created.

二、导出文件procedure

create or replace procedure photo_dump(IDENTITYID in varchar2,

filename in 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 key_value

INTO l_blob

FROM blob_map_t

WHERE key_id = IDENTITYID;

l_blob_len := DBMS_LOB.GETLENGTH(l_blob);

l_file := UTL_FILE.FOPEN('BLOBDIR',

filename,

'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

dbms_output.put_line(SQLERRM);

IF UTL_FILE.IS_OPEN(l_file) THEN

UTL_FILE.FCLOSE(l_file);

END IF;

RAISE;

end photo_dump;

三、调用导出procedure

create or replace procedure out_put_photo is

IDENTITYID varchar2(300);

FILENAME varchar2(300);

cursor cur is

select key_id, key_name

from blob_map_t;

cur_result cur%rowtype;

begin

if cur%isopen = false then

open cur;

end if;

loop

fetch cur

into cur_result;

exit when cur%notfound;

IDENTITYID := cur_result.key_id;

FILENAME := cur_result.key_name;

photo_dump(identityid => IDENTITYID, filename => FILENAME || '.jpg');

end loop;

close cur;

end out_put_photo;

四、导出执行

begin

-- Call the procedure

out_put_photo;

end;

oracle Blob保存方式,oracle 存储过程操作blob相关推荐

  1. oracle Blob保存方式,关于文件保存到Oracle中BLOB字段的方法及例子

    关于文件保存到Oracle中BLOB字段的方法及例子 ------------------------------------------- public class FileOpClass { pu ...

  2. oracle循环的方式,Oracle 的几种循环方式介绍

    1 Oracle 中的Goto 用法: declare x number; begin x:=10; --定义的初始值 <> --循环点 x:= x-2; -- 循环的处理条件 dbms_ ...

  3. oracle rman 登录方式,oracle rman登陆及连接target数据库的步骤方法

    方法一: [oracle@odd-oelr4u8~]$ rman target sys/oracle@PROD1521 catalogcatalog_admin/catalog_admin@PROD2 ...

  4. oracle awr使用方式,Oracle中AWR的使用

    V\:*{behavior.:url(#default#VML);}O\:*{behavior.:url(#default#VML);}W\:*{behavior.:url(#default#VML) ...

  5. oracle文件存储方式,oracle文件存储介质介绍

    oracle文件存储介质介绍 1. 前言 现在我们用户中随着ORACLE的应用越来越复杂,对于ORACLE文件存储也再不象以前这么简单D盘,C盘的规划,特别是linux环境加上RAC的应用对存储介质有 ...

  6. oracle索引实现方式,Oracle之索引的创建方式

    Oracle 的索引可分为5种,它们包括唯一索引.组合索引.反向键索引.位图索引和基于函数的索引. 1.创建索引的标准语法 以下为引用内容:  CREATE INDEX 索引名 ON 表名 (列名)T ...

  7. oracle插入数据方式,Oracle批量插入数据的三种方式

    第一种: begin insert into tableName(column1, column2, column3...) values(value1,value2,value3...); inse ...

  8. oracle表的历史数据转储过程,C#连接Oracle数据库通过存储过程操作数据库 - cuizm的专栏 - CSDN博客...

    C#连接Oracle数据库通过存储过程操作数据库 收藏 此文于2011-06-07被推荐到CSDN首页 此文于2011-06-08被推荐到CSDN首页 如何被推荐? 之前笔者一直用C#连接SQL Se ...

  9. oracle表访问方式

    0.参考文献: Index Full Scan && Index Range Scan oracle-index unique scan 与index range scan等的区别 i ...

最新文章

  1. 四则运算2.0版程序
  2. 夏季十一款降温饮料的制作方法
  3. ORC文件存储格式的深入探究
  4. 深度学习在CTR中的应用
  5. sql server相关的命令行
  6. JavaScript:学习笔记(9)——Promise对象
  7. 怎么注销笔记本icloud_如何在笔记本电脑或台式机的Web浏览器中在线查看Apple iCloud照片
  8. Spark RDD算子介绍
  9. Spring Cache 配置及一些问题的解决
  10. python 结巴分词(jieba)学习
  11. ECS 与 BCH的使用心得 - 引用篇
  12. 学习c#不容错过的网站
  13. 今日狗粮继续管饱:因为爱情,才有思科!
  14. ansible笔记(4):常用模块之文件操作
  15. 微信公众号开发文档,微信小程序开发文档,微信扫码支付文档,微信委托代扣模式开发文档
  16. 2022Java后端之美团笔试题
  17. 2022持续学习-架构相关
  18. 微信小程序:上传的图片显示旋转问题
  19. mysql 优化查询方法,优化MYSQL查询的详细方法
  20. 你所不知道的Spring的@Autowired实现细节

热门文章

  1. vue elementui 复杂表头 table
  2. Arduino读取HC-SR04超声波测距传感器数据附带滤波
  3. app热更新失败:安装wgt文件失败[-1205]:WGT安装包中manifest.json文件的version版本不匹配
  4. 2017年成为全栈开发工程师的权威指南
  5. 2017华为校招硬件逻辑工程师
  6. Python实现微信支付(三种方式)
  7. 最新九宫格心形拼图微信小程序源码+带流量主
  8. Overleaf latex绘制三线表
  9. 2021-11-05 构型空间(关节空间)路径规划-1
  10. 7-96 获奖的运气