> 本文主要介绍 Oracle下 批量导入导出图片的方法,存储过程

#### Oracle LOB 类型介绍

##### BLOB的含义

BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。 主要图片、声音文件等,保存位图

##### CLOB的含义

CLOB(Character Large Object),它与LONG数据类型类似,只不过CLOB用于存储数据库中的大型单字节字符数据块,不支持宽度不等的字符集。可存储的最大大小为4G字节

.CLOB使用CHAR来保存数据。 如:保存XML文档。

#### 批量导入导出

##### 批量导入

``` sql

--创建表,及目录

create table image_lob(t_id varchar2(10) not null,name varchar2(30),t_image blob not null);

create or replace directory "images_dump" as '/home/oracle/images_dump/';

--创建存储过程

create or replace procedure img_insert(tid varchar2,vname varchar2,filename varchar2) as

f_lob bfile;

b_lob blob;

begin

insert into image_lob(t_id,name,t_image) values(tid,vname,empty_blob()) return t_image into b_lob;

f_lob:=bfilename('images_dump',filename);

dbms_lob.fileopen(f_lob,dbms_lob.file_readonly);

dbms_lob.loadfromfile(b_lob,f_lob,dbms_lob.getlength(f_lob));

dbms_lob.fileclose(f_lob);

commit;

end;

/

--执行导入

exec img_insert(89898989,'firsouler','dbwn.png');

exec img_insert(16211779,'abc','adr.png');

```

##### 批量导出

``` sql

--创建导出目录,注意权限

create or replace directory BLOBDIR as '/home/oracle/images_exp';

grant read,write on directory BLOBDIR to mytest;

--创建过程,本例使用t_id,name列作为照片名字,根据t_id 排序获取rownum

CREATE OR REPLACE PROCEDURE GET_PIC_BLOB(i_xh VARCHAR2) IS

l_file UTL_FILE.FILE_TYPE;

l_buffer RAW(32767);

l_amount BINARY_INTEGER := 32767;

l_pos INTEGER := 1;

l_name VARCHAR2(30);

l_id VARCHAR2(30);

l_blob BLOB;

l_blob_len INTEGER;

BEGIN

with tmp_image as (select rownum as rn,t_id,name,t_image from image_lob order by t_id)

select t_id,name,t_image into l_id,l_name,l_blob from tmp_image where rn = i_xh;

l_blob_len := DBMS_LOB.GETLENGTH(l_blob);

l_file := UTL_FILE.FOPEN('BLOBDIR', l_id || '_' || l_name || '.jpg', '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 GET_PIC_BLOB;

/

--循环导出200个图片,以列t_id排序获取rownum

declare

cursor cur is

with t as (select rownum as rn from image_lob order by t_id) select rn from t where rownum <= 200; --导出前200张

begin

for rec in cur loop

GET_PIC_BLOB(rec.rn);

end loop;

end;

/

```

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29487349/viewspace-2762327/,如需转载,请注明出处,否则将追究法律责任。

oracle 图片批量导入,【SQL】Oracle BLOB 批量导入导出图片到文件夹相关语句相关推荐

  1. oracle批量加载,Oracle教程:使用SQL*Loader高速批量数据加载工具

    Oracle教程:使用SQL*Loader高速批量数据加载工具 1.控制文件中包含要加载的数据 首先创建一张测试表 然后创建一个控制文件(其中包含被加载的数据) 然后在命令行执行加载 查看dept表 ...

  2. php单元格字体颜色,PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽...

    PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽 2020-08-31 85 一:读取excel表模板$ph ...

  3. python图片保存jpg、show变成bmp_Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中...

    Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中 我就废话不多说了,直接上代码吧! import Image from datetime import datetime impor ...

  4. oracle收集统计信息sql,Oracle自动统计信息的收集原理及实验

    从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息.这个自动任务默认情况下在工作日晚上10: ...

  5. oracle高资源消耗sql,Oracle高资源消耗SQL语句定位

    Oracle SQL语句资源消耗监控最常用的系统视图有v$sql.v$sqlarea.v$sqltext和v$session.本文我们先了解这些视图的作用与区别,然后了解如何定位高资源消耗SQL语句, ...

  6. oracle创建存储过程动态sql,Oracle存储过程使用动态SQL

    Oracle存储过程使用动态SQL 有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者.试验步骤如下: 1:DDL和DML /*** DDL ***/ begin ...

  7. Oracle数据库恢复应SQL,Oracle数据库数据恢复验证笔记

    这些年做数据恢复单子,经常碰到Oracle案例,当我们把数据恢复出来以后,我们怎样才能让用户看到oracle数据库里的东西,而不是一个一个oracle数据文件,以下是我总结出来的,对oracle初学者 ...

  8. postman怎么导出测试用例_postman---postman文件夹介绍以及批量执行用例

    我们在做测试的过程中,都会多次请求接口,都会把接口保存下来,方便下次直接请求,节省时间不用每次都重新输入,我们一起看下Postman如何保存接口会话 保存请求作用 Postman可以将各个请求组合保存 ...

  9. Java导入,导出,多层文件夹压缩(业务复杂)

    SpringBoot项目 Zip工具类 package com.pty.bip.common.util;import java.io.*; import java.util.List; import ...

  10. PHP 八羊闪电本地相册图片查看器V1 PHP极简代码直接查看本地文件夹图片 源码下载!

    该源码,直接读取本地IMGAGES文件夹的图片,直接显示在相册,点击放大查看,非常方便,非常适合二次开发,但是不适合小白.没有做UI和设计,比较简陋,所以仅仅售价10元钱,想要的就拿去,不想要的就别拍 ...

最新文章

  1. 2.2 《数据库系统概论》之关系操作、关系完整性、关系代数
  2. 窗体跳转与传值 02
  3. python爬取网页url_Python网络爬虫之利用urllib2通过URL抓取网页内容
  4. flash计算机代码怎么写,应用程序操作NorFlash示例代码分享(norflash接口使用方法)...
  5. Spring的Bean有哪些作用域?
  6. Java多线程-线程的生命周期
  7. Linux一些最基本命令
  8. 简明python教程:数据结构
  9. MAC 安装Maven
  10. STM32串口通信实例
  11. 【“免费”Windows优秀软件推荐】:Fences——自动整理桌面图标
  12. vax_patch.exe谁有这个文件,可以免费分享一下嘛?
  13. 台式计算机如何连接投影仪,电脑如何链接投影仪_台式电脑主机怎么连接投影仪-win7之家...
  14. STM32F103入门 | 2.STM32F103xx内部资源介绍
  15. 驾驶证到期换新证流程
  16. 所有学java的女生都进来看看
  17. CFileDialog使用总结
  18. TFmini在开源飞控pixhawk上的应用
  19. 命令行启动burp报错:-Xbootclasspath/p is no longer a supported option.解决方法(Mac )
  20. 职高内蒙古计算机系高考最高分,内蒙古一考生高考668分,数学拿到满分,查分时还在淡定吃烧烤...

热门文章

  1. 不卖菜,互联网巨头应该卖什么?
  2. 不同云服务商之间域名转出转入(阿里云 转出至 腾讯云)
  3. SEM和SEO的区别?
  4. android外接键盘打汉字,外接键盘情况下,安卓打字不如windows
  5. 中国银行C语言笔试题,中国银行软件中心2016校园招聘笔试题经验
  6. Python提取PDF中的图片
  7. phpstudy开机自启
  8. matlab拟合曲线poly交点,matlab 离散曲线求交点
  9. Spire.PDF帮你高效搞定PDF打印
  10. 转载:C64x的GPIO中断——简单原理介绍