Questo dovrebbe essere abbastanza semplice, ma le parole di ricerca sono così comuni che non sto trovando una risposta:Come caricare variabili OS in PL/SQL?
D. Come faccio a caricare i valori da una variabile di sistema operativo (RHEL) in PL/SQL su un Oracle 11g Banca dati?
Codice:
begin
dba_utilities.utilities_with_ext_proc.send_email(
p_recipient => '$MAIL_LIST',
p_subject => 'Subject'
p_body => 'Body
);
End ;
La procedura funziona bene se ho messo in un indirizzo di posta elettronica, ma c'è una variabile di sistema denominata $ MAIL_LIST che contiene un gruppo di persone. Posso anche confermare che funziona su altri server ma sto configurando una sostituzione.
Grazie in anticipo e scusa se la domanda è eccessivamente semplice!
La variabile $ MAIL_LIST è disponibile in riga di comando per l'utente del sistema operativo che ha avviato il database Oracle. – user739866
Cosa sta facendo la tua procedura. Sulla base del nome del pacchetto, suppongo che tu abbia una sorta di procedura esterna dichiarata. Ciò implica che PL/SQL sta chiamando a una procedura esterna scritta in C (o qualcosa che espone un'interfaccia C) e implica che la risoluzione della variabile di ambiente viene eseguita in quella procedura esterna, non in PL/SQL. In questo caso, dovremmo capire come viene definita e implementata la procedura esterna. Dove nel tuo ambiente viene popolata questa variabile di ambiente? –
Il PL/SQL sta chiamando un comando shell come mostrato di seguito: shell ('echo "Oggetto:' || REPLACE (p_subject, '"', '\ "') || CHR (10) || l_body || '"| sendmail' || p_recipient); Ho bisogno di provare la risposta qui sotto per vedere se funziona o no. – user739866