Oracle 存储过程中动态创建目录directory解决思路

Oracle 存储过程中动态创建目录directory
本帖最后由 gzhwdk 于 2013-03-13 21:51:07 编辑
vc++中通过调用存储过程 上传图片,已将通过存储过程只能上传不大于32K文件解决了,现在问题是 只能上传指定路径的图片,现在想在存储过程中 动态创建directory,然后能上传任意路径的图片到数据中指定数据类型为BLOB的字段中,存储过程中动态创建directory成功,但是调试程序时,总是出错。

create or replace procedure AddPicture(StdentID in varchar2,blob,v_picname in varchar2,filename in varchar2) is
   f_lob BFILE; --文件类型   
   b_lob BLOB;
   --filename 图片名称
   --v_picname  创建directory的路径
   begin
     INSERT INTO stpic(stid,studpic,stpicname) VALUES (StdentID,EMPTY_BLOB(),filename) RETURN studpic INTO b_lob; 
     
     v_sql := 'create or replace directory IMAGEANY  as '''||v_picname||''''; 
     execute immediate v_sql;
     
     --插入空的blob   
     f_lob:=bfilename('IMAGEANY',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 AddPicture;

------解决方案--------------------
引用:
引用:本帖最后由 zyq5945 于 2013-03-13 21:56:35 编辑确认下载PLSQL中调用是否正确,接收返回值打印日志看是是否都正确返回。


不是太明白

我也不知道这个错误是怎么引起的,一步一步排查。
首先在确认下载PLSQL中调用是否正确,然后再来找是不是其他的问题。