Как загрузить переменные ОС в PL / SQL? - PullRequest
5 голосов
/ 18 октября 2011

Это должно быть довольно просто, но поисковые слова настолько распространены, что я не могу найти ответ:

Q.Как загрузить значения из переменной операционной системы (RHEL) в PL / SQL в базе данных Oracle 11g?

Код:

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

Процедура работает нормально, если я вставлюадрес электронной почты, но есть системная переменная с именем $ MAIL_LIST, которая содержит группу людей.Я также могу подтвердить, что это работает на других серверах, но я настраиваю замену.

Заранее спасибо и извините, если вопрос слишком прост!

1 Ответ

7 голосов
/ 18 октября 2011

Вы можете получить доступ к переменным окружения с помощью метода getenv в Java System class .Чтобы вызвать это из 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 (если вы не хотите создавать функцию уровня схемы просто для получения переменных среды).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...