oracle – 如何将OS变量加载到PL / SQL中?

前端之家收集整理的这篇文章主要介绍了oracle – 如何将OS变量加载到PL / SQL中?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
这应该非常简单,但搜索词很常见,我找不到答案:

问:如何将操作系统变量(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';

现在,您可以编写PL / sql代码,如下所示:

begin
dba_utilities.utilities_with_ext_proc.send_email(
        p_recipient   => getenv('MAIL_LIST'),p_subject     => 'Subject'
        p_body        => 'Body
);
End ;

存储过程也可以存在于PL / sql包中(如果您不想创建模式级函数获取环境变量).

猜你在找的Oracle相关文章