读书人

向ORACLE上传文件create directory报错

发布时间: 2014-01-28 21:23:08 作者: rapoo

现在要向Oracle上传文件,代码如下:
create or replace function plan_fliles_load_file
(filePath varchar2,fileName varchar2) return boolean
/* *******************************************************************************************
--功 能:向表中上传文件
--输入参数:
fileName:要上传的文件名称, filePath:本文件全路径
--输出参数: 上传文件是否成功
--********************************************************************************************/
AS
Result BOOLEAN;
F_LOB BFILE;
B_LOB BLOB;
bfile_path varchar2;

begin
INSERT INTO plan_files(filename,filecontent)
valueS(fileName,EMPTY_BLOB())RETURN filecontent INTO B_LOB;
create directory bfile_path as filePath;

F_LOB:= BFILENAME (bfile_path, FILENAME);
IF (DBMS_LOB.FILEEXISTS(F_LOB) != 0) then
DBMS_LOB.OPEN(F_LOB, DBMS_LOB.LOB_READONLY);/* 打开bfile源文件 */
DBMS_LOB.OPEN(B_LOB, DBMS_LOB.LOB_READWRITE);/* 打开目标blob: */
DBMS_LOB.LOADFROMFILE(B_LOB, F_LOB,DBMS_LOB.GETLENGTH(F_LOB));/*从文件中装入 */
DBMS_LOB.CLOSE(B_LOB);/* 记得关闭: */
DBMS_LOB.CLOSE(F_LOB);
COMMIT;
Result:=true;

EXCEPTION/*如果发生异常*/
WHEN OTHERS THEN
ROLLBACK;
Result:=FALSE;

return(Result);
end plan_fliles_load_file;

为什么create directory bfile_path as filePath;这句老出错。

------解决方法--------------------------------------------------------

探讨
引用 他人的回复:
execute immediate 'create directory ' || :bfile_path || ' as ' || filePath;
可以不?


execute immediate 'create directory ' || bfile_path || ' as ' || filePath;

        

读书人网 >oracle

热点推荐