sagen, ich habe zwei Dateien mit dem gleichen Dateinamen sample.xlsx
in zwei separaten Verzeichnissen u1\data\out1\
und u2\data\out2\
beider Verzeichnisse haben bereits entried in DBA_DIRECTORIES
als EXT_OUT1
und EXT_OUT2
ist.die Anlage Pass richtig UTL_MAIL.SEND_ATTACH_RAW
Ich möchte sample.xlsx
von EXT_OUT1
senden UTL_MAIL.SEND_ATTACH_RAW
verwenden, wie kann ich es richtig an den attachment
Parameter übergeben?
Beispiel Anonymous-Block (Beachten Sie die Kommentare):
DECLARE
vInHandle utl_file.file_type;
l_sender varchar2(100) := '[email protected]';
l_recipients varchar2(100) := '[email protected]';
l_subject varchar2(100) := 'Employee Roster Report';
l_message varchar2(100) := 'Hello';
l_attachment raw;
l_directory varchar2(100) := 'EXT_OUT1';
fname varchar2(100) := 'sample.xlsx';
BEGIN
/* how put RAW data into l_attachment here? */
--vInHandle := utl_file.fopen(l_directory, fname, 'R'); -- If i'm not mistaken, this reads the File from the specified directory
--utl_file.get_raw(); -- not sure what parameters i should pass
--utl_file.fclose(vInHandle); -- ?
UTL_MAIL.SEND_ATTACH_RAW
(
sender => l_sender
, recipients => l_recipients
, subject => l_subject
, message => l_message
, attachment => l_attachment
, att_filename => 'clouds.jpg'
);
EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'The following error has occured: ' || sqlerrm);
END;
Was passiert, wenn Sie das ausführen? Das 5. Argument sollte ein RAW-Wert und keine Zeichenfolge sein. und der 6. ist der Name des Anhangs * in der E-Mail *. Es sieht kein Verzeichnis an. [Siehe Demo hier] (http://www.morganslibrary.org/reference/pkgs/utl_mail.html). –
hi @AlexPoole, ja Entschuldigung, ich habe die Frage bearbeitet, bitte lassen Sie mich wissen, wie ich 'l_attachment' an den' attachment' Parameter übergeben soll. –
Sie können mit diesem Verfahren nur ein einzelnes Dokument anhängen. Beachten Sie auch, dass die Größe von RAW auf 32k beschränkt ist. Reicht das für Ihre Bedürfnisse? –