请教 “存储过程读取blob数据 存为文件”的错误!
时间:2011-09-26
来源:互联网
我想实现的是由存储过程从blob字段中提取二进制数据,然后存入文件,文件类型为EPS或者图片。
创建存储过程的代码是在网络上摘取的,通过编译,但是出了一些问题。
创建存储Directory
create or replace directory BLOBDIR as 'D:oradataPic';
创建存储过程
CREATE OR REPLACE PROCEDURE eygle_dump_blob (piname varchar2,poname 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 FPIC INTO l_blob WHERE FNAME = piname;
l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
l_file := UTL_FILE.FOPEN('BLOBDIR',poname,'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);
END;
/
错误提示:
ORA-29285 文件写入错误!
ORA-06512 在SYS.UTL_FILE line 18
ORA-06512 在SYS.UTL_FILE line 1007
ORA-06512 在eygle_dump_blob line ..
ORA-06512 在 line 1
主要的问题是:
1、出现写入文件错误的提示下。
2、同时我导出的eps数据会和原文件大小不一致,但是可以通过软件打开。
希望大家能抽出些闲暇时间看一下。
非常感谢!!!
创建存储过程的代码是在网络上摘取的,通过编译,但是出了一些问题。
创建存储Directory
create or replace directory BLOBDIR as 'D:oradataPic';
创建存储过程
CREATE OR REPLACE PROCEDURE eygle_dump_blob (piname varchar2,poname 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 FPIC INTO l_blob WHERE FNAME = piname;
l_blob_len := DBMS_LOB.GETLENGTH(l_blob);
l_file := UTL_FILE.FOPEN('BLOBDIR',poname,'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);
END;
/
错误提示:
ORA-29285 文件写入错误!
ORA-06512 在SYS.UTL_FILE line 18
ORA-06512 在SYS.UTL_FILE line 1007
ORA-06512 在eygle_dump_blob line ..
ORA-06512 在 line 1
主要的问题是:
1、出现写入文件错误的提示下。
2、同时我导出的eps数据会和原文件大小不一致,但是可以通过软件打开。
希望大家能抽出些闲暇时间看一下。
非常感谢!!!
作者: ghostzjc 发布时间: 2011-09-26
虽然没有搞过。。但帮顶。。。
作者: ulihss 发布时间: 2011-09-26
会不会是路径没有整对哦,斜杠没得
create or replace directory BLOBDIR as 'D:oradataPic'
create or replace directory BLOBDIR as 'D:oradataPic'
作者: r_youxia_dayu 发布时间: 2011-09-26
谢谢两位,路径是我写错了,但问题不是这个
作者: ghostzjc 发布时间: 2011-09-26
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28