oracle 图片批量导入,【SQL】Oracle BLOB 批量导入导出图片到文件夹相关语句
> 本文主要介绍 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 批量导入导出图片到文件夹相关语句相关推荐
- oracle批量加载,Oracle教程:使用SQL*Loader高速批量数据加载工具
Oracle教程:使用SQL*Loader高速批量数据加载工具 1.控制文件中包含要加载的数据 首先创建一张测试表 然后创建一个控制文件(其中包含被加载的数据) 然后在命令行执行加载 查看dept表 ...
- php单元格字体颜色,PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽...
PHPExcel API接口用法大全,按模板导入excel,美化excel,导出图片,设置单元格字体颜色背景色边框,合并单元格,设置行高列宽 2020-08-31 85 一:读取excel表模板$ph ...
- python图片保存jpg、show变成bmp_Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中...
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中 我就废话不多说了,直接上代码吧! import Image from datetime import datetime impor ...
- oracle收集统计信息sql,Oracle自动统计信息的收集原理及实验
从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息.这个自动任务默认情况下在工作日晚上10: ...
- oracle高资源消耗sql,Oracle高资源消耗SQL语句定位
Oracle SQL语句资源消耗监控最常用的系统视图有v$sql.v$sqlarea.v$sqltext和v$session.本文我们先了解这些视图的作用与区别,然后了解如何定位高资源消耗SQL语句, ...
- oracle创建存储过程动态sql,Oracle存储过程使用动态SQL
Oracle存储过程使用动态SQL 有两种写法:用 DBMS_SQL 或 execute immediate,建议使用后者.试验步骤如下: 1:DDL和DML /*** DDL ***/ begin ...
- Oracle数据库恢复应SQL,Oracle数据库数据恢复验证笔记
这些年做数据恢复单子,经常碰到Oracle案例,当我们把数据恢复出来以后,我们怎样才能让用户看到oracle数据库里的东西,而不是一个一个oracle数据文件,以下是我总结出来的,对oracle初学者 ...
- postman怎么导出测试用例_postman---postman文件夹介绍以及批量执行用例
我们在做测试的过程中,都会多次请求接口,都会把接口保存下来,方便下次直接请求,节省时间不用每次都重新输入,我们一起看下Postman如何保存接口会话 保存请求作用 Postman可以将各个请求组合保存 ...
- Java导入,导出,多层文件夹压缩(业务复杂)
SpringBoot项目 Zip工具类 package com.pty.bip.common.util;import java.io.*; import java.util.List; import ...
- PHP 八羊闪电本地相册图片查看器V1 PHP极简代码直接查看本地文件夹图片 源码下载!
该源码,直接读取本地IMGAGES文件夹的图片,直接显示在相册,点击放大查看,非常方便,非常适合二次开发,但是不适合小白.没有做UI和设计,比较简陋,所以仅仅售价10元钱,想要的就拿去,不想要的就别拍 ...
最新文章
- 2.2 《数据库系统概论》之关系操作、关系完整性、关系代数
- 窗体跳转与传值 02
- python爬取网页url_Python网络爬虫之利用urllib2通过URL抓取网页内容
- flash计算机代码怎么写,应用程序操作NorFlash示例代码分享(norflash接口使用方法)...
- Spring的Bean有哪些作用域?
- Java多线程-线程的生命周期
- Linux一些最基本命令
- 简明python教程:数据结构
- MAC 安装Maven
- STM32串口通信实例
- 【“免费”Windows优秀软件推荐】:Fences——自动整理桌面图标
- vax_patch.exe谁有这个文件,可以免费分享一下嘛?
- 台式计算机如何连接投影仪,电脑如何链接投影仪_台式电脑主机怎么连接投影仪-win7之家...
- STM32F103入门 | 2.STM32F103xx内部资源介绍
- 驾驶证到期换新证流程
- 所有学java的女生都进来看看
- CFileDialog使用总结
- TFmini在开源飞控pixhawk上的应用
- 命令行启动burp报错:-Xbootclasspath/p is no longer a supported option.解决方法(Mac )
- 职高内蒙古计算机系高考最高分,内蒙古一考生高考668分,数学拿到满分,查分时还在淡定吃烧烤...