2016-05-25 18 views
0
DECLARE 
attachments shr_pkg_send_mail.array_attachments:=shr_pkg_send_mail.array_attachments(); 
b_input_file BFILE:= BFILENAME('mount_dir', 'test02.txt'); 
c_output_file CLOB; 

BEGIN 
--DBMS_OUTPUT.PUT_LINE(c_output_file); 
dbms_lob.open(b_input_file, DBMS_LOB.LOB_READONLY); 
-- DBMS_OUTPUT.PUT_LINE('1'); 

dbms_lob.createtemporary(lob_loc => c_output_file, cache => false); 
--DBMS_OUTPUT.PUT_LINE('2'); 
dbms_lob.open(c_output_file, DBMS_LOB.LOB_READWRITE); 
--DBMS_OUTPUT.PUT_LINE('3'); 
dbms_lob.loadfromfile(c_output_file, b_input_file, DBMS_LOB.LOBMAXSIZE); 
--DBMS_OUTPUT.PUT_LINE('4'); 
dbms_lob.close(b_input_file); 
--DBMS_OUTPUT.PUT_LINE('5'); 
attachments.extend(1); 
attachments(1).attach_name := 'test02.txt'; 
attachments(1).data_type := 'text/plain'; 
attachments(1).attach_content := c_output_file;      SHR_PKG_SEND_MAIL.SEND_MAIL('[email protected]ovartis.com','[email protected]','test','test',attachments => attachments); 

dbms_lob.close(c_output_file); 
END ; 

ERROR發送郵件使用Oracle過程現有的文件作爲附件

ORA-22285:不存在的目錄或文件FILEOPEN操作

ORA-06512:在 「SYS.DBMS_LOB」,行1014

ORA-06512:在第8行

+0

你在oracle中創建了目錄'mount_dir'嗎?選中此視圖(從ALL_DIRECTORIES選擇*;) –

回答

0

獲取的目錄路徑

select directory_path from all_directories where directory_name='MOUNT_DIR' 

檢查此路徑是否存在於數據庫服務器並且oracle有讀取訪問權限。

檢查文件'test02.txt'是否存在於此路徑中並且可以訪問。

給補助到這個目錄

GRANT READ, WRITE ON DIRECTORY MOUNT_DIR TO <some_user>; 

而且here是一些有趣的事情,怎麼看目錄中的文件有選擇,但你應該有訪問SYS用戶。

相關問題