这应该非常简单,但搜索词很常见,我找不到答案:
问:如何将操作系统变量(RHEL)中的值加载到Oracle 11g数据库的PL / sql中?
码:
begin dba_utilities.utilities_with_ext_proc.send_email( p_recipient => '$MAIL_LIST',p_subject => 'Subject' p_body => 'Body ); End ;
如果我输入电子邮件地址但是有一个名为$MAIL_LIST的系统变量包含一组人,则该过程正常.我也可以确认这是在其他服务器上工作,但我正在设置替代品.
如果问题过于简单,请提前致谢并对不起!
解决方法
您可以通过Java
System
class中的
getenv
method访问环境变量.要从PL / sql调用它,您可以创建Java存储过程,如下所示:
CREATE FUNCTION getenv(name VARCHAR2) RETURN VARCHAR2 AS LANGUAGE JAVA NAME 'java.lang.System.getenv(java.lang.String) return java.lang.String';
begin dba_utilities.utilities_with_ext_proc.send_email( p_recipient => getenv('MAIL_LIST'),p_subject => 'Subject' p_body => 'Body ); End ;