2016-05-25 20 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]','[email protected]','test','test',attachments => attachments); 

dbms_lob.close(c_output_file); 
END ; 

ERRORは、Oracleの手順に

ORA-22285を使用して添付ファイルとして既存のファイルにメールを送信します1014

ORA-06512:行8

+0

ディレクトリ「mount_dir」をoracleに作成しましたか?このビューをチェックする( 'select * from 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ユーザーへのアクセス権を持っている必要があります。