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