У меня следующий запрос:
SELECT DISTINCT purchase_authorizer_api.get_userid('30', pagl.authorize_id)
FROM purch_authorize_group_line pagl join purchase_authorizer pa
ON pagl.authorize_id = pa.authorize_id
WHERE pagl.authorize_group_id = '30-QA-NUC'
AND pa.notify_user = 'TRUE';
, который дает мне идентификаторы пользователей для авторизаторов PO в этой группе авторизации.У меня может быть несколько авторизаторов ПО.Мне нужно иметь возможность отправить их все по электронной почте.
Я пытаюсь создать действие события в нашей системе ERP, которое будет запускать следующее при каждом выпуске ПО:
BEGIN
command_sys.mail(from_user_name_ => 'IFSAPP',
to_user_name_ => 'youremail@yourdomain.com',
subject_ => 'Test subject',
text_ => 'Test message body');
COMMIT;
END;
Я могу ввести несколько идентификаторов пользователей в разделе to_user_name, но мне трудно понять, как я могу получить результаты этого запроса в разделе to_user_name?
РЕДАКТИРОВАТЬ: я все еще пытаюсь, но я 'я не могу заставить его работать:
CREATE PROCEDURE a_proc
AS
cursor get_emails is
SELECT DISTINCT purchase_authorizer_api.get_userid('30', pagl.authorize_id) AS "EMAIL"
FROM purch_authorize_group_line pagl join purchase_authorizer pa
ON pagl.authorize_id = pa.authorize_id
WHERE pagl.authorize_group_id = '30-PM-COM'
AND pa.notify_user = 'TRUE';
result_ VARCHAR2(500);
BEGIN
OPEN get_emails;
FETCH get_emails BULK COLLECT INTO vi_emails;
CLOSE get_emails;
FOR indx IN 1..vi_emails.COUNT LOOP
command_sys.mail(from_user_name_ => 'IFSAPP',
to_user_name_ => result_,
subject_ => 'Test subject',
text_ => 'Test message body');
END LOOP;
END a_proc;
EDIT2:
Я обновил это:
CREATE OR REPLACE PROCEDURE a_proc
is vi_get_emails varchar2(500);
cursor get_emails is
SELECT DISTINCT purchase_authorizer_api.get_userid('30', pagl.authorize_id) AS "EMAIL"
FROM purch_authorize_group_line pagl join purchase_authorizer pa
ON pagl.authorize_id = pa.authorize_id
WHERE pagl.authorize_group_id = '30-PM-COM'
AND pa.notify_user = 'TRUE';
BEGIN
OPEN get_emails;
FETCH get_emails INTO vi_get_emails;
CLOSE get_emails;
FOR rec_ IN get_emails LOOP
command_sys.mail(from_user_name_ => 'IFSAPP',
to_user_name_ => vi_get_emails,
subject_ => 'Test subject',
text_ => 'Test message body');
END LOOP;
END a_proc;
, который компилируется без ошибок.Тем не менее, электронные письма пользователям не отправляются.