2016-12-27 3 views
-1

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; 
+0

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). –

+0

hi @AlexPoole, ja Entschuldigung, ich habe die Frage bearbeitet, bitte lassen Sie mich wissen, wie ich 'l_attachment' an den' attachment' Parameter übergeben soll. –

+0

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? –

Antwort

0

Der Anlageninhalt ist der Wert, den Sie als Ansetzparameter liefern. Der Dateiname ist einfach ein Label. Es liest die Datei nicht, Sie müssten das also selbst tun und dann als Anhang zuweisen.

+0

Hi @ gary-myers, das ist der Teil, über den ich mir nicht sicher bin. Wie kann ich die eigentliche 'RAW' Datei an den' attachment' Parameter übergeben? Ich sehe Beiträge, die 'utl_file.fopen' den Trick machen würden, aber ich bin nicht ganz sicher, wie es weitergeht. Vielen Dank! –