现在要向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;这句老出错。
------解决方法--------------------------------------------------------