Esto debería ser bastante sencillo pero las palabras de búsqueda son tan comunes que no encuentro una respuesta:¿Cómo cargo las variables del sistema operativo en PL/SQL?
Q. ¿Cómo puedo cargar los valores de una variable del sistema operativo (RHEL) en PL/SQL en un Oracle 11g ¿base de datos?
Código:
begin
dba_utilities.utilities_with_ext_proc.send_email(
p_recipient => '$MAIL_LIST',
p_subject => 'Subject'
p_body => 'Body
);
End ;
El procedimiento funciona bien si pongo en una dirección de correo electrónico, pero hay una variable llamada $ MAIL_LIST sistema que contiene un grupo de personas. También puedo confirmar que esto está funcionando en otros servidores, pero estoy configurando un reemplazo.
Gracias de antemano y lo siento si la pregunta es demasiado simple!
La variable $ MAIL_LIST está disponible en la línea de comandos para el usuario del sistema operativo que inició la base de datos Oracle. – user739866
¿Qué está haciendo su procedimiento? Basado en el nombre del paquete, supongo que tiene algún tipo de procedimiento externo declarado. Eso implica que PL/SQL llama a un procedimiento externo escrito en C (o algo que expone una interfaz C) e implica que la resolución de la variable de entorno se realiza en ese procedimiento externo, no en PL/SQL. Si ese es el caso, tendríamos que averiguar cómo se define e implementa el procedimiento externo. ¿En qué parte de tu entorno se está poblando esta variable de entorno? –
El PL/SQL está llamando a un comando de shell como se muestra a continuación: shell ('echo' Asunto: '|| REPLACE (p_subject,' "',' \" ') || CHR (10) || l_body || '"| sendmail' || p_recipient); Necesito probar la respuesta a continuación para ver si funciona o no. – user739866