处理BLOB首先:
create directory user_dir as 'E:\BFILE_DEMO';
grant read,write on directory user_dir to TEST;
create or replace procedure UPD_CLOB_PRO(P_ID number,P_CLOB varchar2,P_FILENAME varchar2) is
--CLOB
v_CLOB clob;
amount number;
offset number;
--BLOB
v_BLOB blob;
v_file BFILE;
blob_amount number;
src_offset number:=1;
dest_offset number:=1;
begin
--更新CLOB
select TEST_CLOB into v_CLOB from TEST_TB where TEST_BM = P_ID for update;
offset :=dbms_lob.getlength(v_CLOB)+1;
amount :=length(P_CLOB);
dbms_lob.write(v_CLOB,amount,offset,P_CLOB);
commit;
--更新BLOB
select TEST_BLOB into v_BLOB from TEST_TB where TEST_BM = P_ID for update;
v_file :=BFILENAME('USER_DIR',P_FILENAME);
dbms_lob.fileopen(v_file);
blob_amount :=dbms_lob.getlength(v_file);
dbms_lob.loadblobfromfile(v_BLOB,v_FILE,blob_amount,dest_offset,src_offset);
dbms_lob.fileclose(v_file);
commit;
end UPD_CLOB_PRO;
BLOB 部分报错:ORA-22288 : 文件或LOBster操作FILEOPEN失败,设备未就绪
请达人指教