2014-09-05 66 views
0

尝试使用新的PDF图像更新blob中的现​​有pdf图像。更新Oracle中的BLOB

使用下面的脚本

create or replace directory BLOBS as 'c:\scripts\blob\'; 

DECLARE 
    v_lob BLOB; 
    l_bfile bfile; 
    amt  NUMBER; 

BEGIN 

l_bfile := bfilename('BLOBS', 'releaseofinformation.pdf'); 

SELECT td.TEMPLATE_IMAGE 
INTO v_lob 
FROM template_definition td 
WHERE td.internal_name='AUTH_FOR_RELE_OF_INFO_FORM' 
FOR UPDATE; 

amt := dbms_lob.getlength(l_bfile); 

dbms_lob.fileopen(l_bfile ,dbms_lob.file_readonly); 
dbms_lob.OPEN(v_lob,dbms_lob.lob_readwrite); 
dbms_lob.loadfromfile(v_lob, l_bfile ,amt); 

dbms_output.put_line('File length is: '||dbms_lob.getlength(l_bfile)); 
dbms_output.put_line('Loaded length is: '||dbms_lob.getlength(v_lob)); 
dbms_lob.close(v_lob); 
dbms_lob.fileclose(l_bfile); 

END; 
/

与文件的目录是在服务器上为Oracle使用上。 脚本似乎运行并在输出中报告新文件的文件长度。当我查询记录并在弹出式编辑器中选择blob时,blob显示不变。

我试着更新过程,用empty_blob()更新blob,然后只运行脚本到现在有一​​个空的blob。

想法和想法?

谢谢

+0

您是否在会话中执行了脚本,然后在弹出编辑器中查询blob?或者是同一届会议? (它可能不是,如果你正在使用例如Toad。) – 2014-09-05 18:23:40

+0

我正在运行一个datafix脚本,它报告过程成功运行并报告文件长度。然后我进入Toad验证blob更新,但由于列现在是空的,它仍然是空的。 – iowatiger08 2014-09-05 19:09:52

回答

0

我不知道为什么,但我不得不手动更新记录/场EMPTY_BLOB(),提交这一变化,然后我可以用文件图像更新斑点进行。