Oracle使用存储过程下载Blob大对象
2015-07-07 10:17
507 查看
1. 创建存储过程 copy_blob_data_to_file
CREATE OR REPLACE PROCEDURE copy_blob_data_to_file( p_blob_id INTEGER, p_directory VARCHAR2 ) AS v_src_blob BLOB; v_src_file_name VARCHAR2(20); v_file UTL_FILE.FILE_TYPE; v_offset INTEGER := 1; v_amount INTEGER := 32767; v_binary_buffer RAW(32767); BEGIN -- get the LOB locator of the BLOB SELECT E.FJ,E.FJDZ --从表中查询sjid为p_blob_id的大对象及其文件名 INTO v_src_blob,v_src_file_name FROM EVENT E WHERE E.SJID = p_blob_id; -- open the file for writing of bytes (up to v_amount bytes at a time) v_file := UTL_FILE.FOPEN(p_directory, v_src_file_name, 'wb', v_amount); -- copy the data from v_src_blob to the file LOOP BEGIN -- read characters from v_src_blob into v_binary_buffer DBMS_LOB.READ(v_src_blob, v_amount, v_offset, v_binary_buffer); -- copy the binary data from v_binary_buffer to the file UTL_FILE.PUT_RAW(v_file, v_binary_buffer); -- add v_amount to v_offset v_offset := v_offset + v_amount; EXCEPTION -- when there is no more data in the file then exit WHEN NO_DATA_FOUND THEN EXIT; END; END LOOP; -- flush any remaining data to the file UTL_FILE.FFLUSH(v_file); -- close the file UTL_FILE.FCLOSE(v_file); DBMS_OUTPUT.PUT_LINE('Copy successfully completed.'); END copy_blob_data_to_file;
2. 调用存储过程copy_blob_data_to_file()
call copy_blob_data_to_file(20,’E:\exp’);3. 调用过程中如果遇到如下错误
ORA-29280: invalid directory path路径名不存在
4. 解决方法:
utl为空,设置utl_file_dir值
重启ORACLE服务,验证
5. 结束
现在utl_file_dir被赋值E:\exp,重新调用存储过程copy_blob_data_to_file(),执行成功,大对象BLOB从数据库中下载到本地文件。相关文章推荐
- Oracle中instr函数使用方法
- Oracle 表被其他的 过程/视图 引用
- 使用ORACLE在线重定义将普通表改为分区表
- LINUX环境下静默安装ORACLE11gR2数据库软件
- Oracle学习(十六)之建表和审计以及权限管理
- Oracle数据库中的分页--rownum
- Oracle 11g ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务
- inventory.xml中的Oracle_home已存在
- Oracle数据库备份与恢复 - 增量备份
- 【玩转Excel】Oracle PLSQL处理生成XLSX文件
- 从oracle中导出数据表 —— 使用命令行
- oracle实现分页-- 红黑
- Oracle pl/sql中的group by子句不能使用别名,应该这样写。
- 一、Oracle分析函数入门
- Oracle复习(有记录才能沉淀.......)
- ORACLE 中ROWNUM用法总结!
- 好饭不怕晚--记我的Oracle数据库生涯
- Oracle之 数据分页查询
- Oracle 避免使用动态 SQL
- Oracle之分页查询