目的: 将数据库的照片导入到文件系统照片的名称以grid主键数据命名照片名称grid.jpg ,并指定照片的位置存放在数据库中的位置 1、创建direcory存放照片位置 create directory BLOBDIR as '/expdp_dir1'; grant read ,write on directory to public; 2、在gr_xx 表添加一列存放照片地址 alter table grxer_xx11 add address varchar2(100); 3、创建存储过程将数据库照片导出 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 photo INTO l_blob FROM grxer_xx11 WHERE grid = IDENTITYID and photo is not null; l_blob_len := DBMS_LOB.GETLENGTH(l_blob); l_file := UTL_FILE.FOPEN('BLOBDIR',filename,'wb', /*l_blob_len*/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; 4、执行导出照片脚本 并更新照片位置 declare begin for i in (select grid from grxer_xx11 where photo is not null) loop photo_dump(i.grid,i.grid||'.jpg'); update grxer_xx11 set address='/expdp_dir1/'||i.grid||'.jpg' where grid=i.grid; commit; end loop; end; / 如果图片特别多需要进行分批处理,执行以下方案: sqlplus bjsx/Tzxz0309 <<EOFdeclarebegin for i in ( SELECT grid FROM ( SELECT ROWNUM AS rowno, t.grid FROM gr_xx t where photo is not null AND ROWNUM <= 1000000) table_alias WHERE table_alias.rowno >= 1) loopphoto_dump1(i.grid,i.grid||'.jpg');commit;end loop;end;/EOF 标红色为分页写法。 5、插看运行结果 cd /expdp_dir1/ ll *.jpg select grid,address from grxer_xx11 where address is not null;
将数据库照片大字段下卸到文件系统,照片文件名以某一个字段命名
来源:这里教程网
时间:2026-03-03 15:35:18
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle RAC实施方案详细说明-安装前规划01
Oracle RAC实施方案详细说明-安装前规划01
26-03-03 - ADG Standby_file_management参数导致备份故障
ADG Standby_file_management参数导致备份故障
26-03-03 - Oracle 19C Data Guard基础运维-01部署Physical Standby
- Oracle GoldenGate 11g官方文档Administrator’s Guide续四
- 连载三:Oracle升级文档大全
连载三:Oracle升级文档大全
26-03-03 - 使用DTS进行自建Oracle间的数据迁移
使用DTS进行自建Oracle间的数据迁移
26-03-03 - Oracle 19C Data Guard基础运维-02 Switchovers(物理)
- ORACLE 体系结构
ORACLE 体系结构
26-03-03 - Oracle 19C Data Guard基础运维-06 PROTECTION MODE
- 连载四:Oracle升级文章大全(完结篇)
连载四:Oracle升级文章大全(完结篇)
26-03-03
