1
我有几千个文档在Oracle 10g数据库中作为斑点存储。它们是.doc和pdf的混合体。我希望将它们从Oracle中提取到服务器上以迁移到其他位置。从Oracle中提取斑点 - 文件损坏
下面是我用来提取单个PDF的示例代码。这似乎工作成功,直到我尝试使用Adobe Reader打开文件。我收到一条消息:“打开此文档时出错,文件已损坏,无法修复。”
我已经能够使用系统前端导出此PDF并成功读取,因此该文件在Oracle上没有损坏。
有其他人遇到过这个问题吗?非常感谢。
DECLARE
l_buffer RAW(32767); --set buffer to maximum size
l_file UTL_FILE.FILE_TYPE;
l_amount BINARY_INTEGER := 32767; --set amount to maximum size
l_pos NUMBER := 1;
l_blob BLOB;
l_blob_len NUMBER;
BEGIN
select ff.blob_content
into l_blob
from documents pd
where
pd.id = '47820';
l_blob_len := DBMS_LOB.getlength(l_blob); --acquire blob size
-- Open the destination file.
l_file := UTL_FILE.fopen('TEMP_DIR','test2511013','wb');
DBMS_LOB.read(l_blob, l_amount, l_pos, l_buffer);
UTL_FILE.put_raw(l_file, l_buffer, TRUE);
-- Close the file.
UTL_FILE.fclose(l_file);
END;
一个很好的问题!我的示例文件长度为125899字节,这说明文件损坏。谢谢 - 我现在最好进一步调查。 – DavidG