LifeIsGood

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

处理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失败,设备未就绪
请达人指教

posted on 2009-08-19 16:34  LifeIsGood  阅读(1075)  评论(3)    收藏  举报