36.121 SET_SECURITY_GROUP_IDプロシージャ
このプロシージャは、バッチ・モードでメール・パッケージを利用しやすくするために、apex_util.find_security_group_id
で使用します。このプロシージャは、スキーマが複数のワークスペースに関連付けられている場合に特に便利です。たとえば、夜間ジョブで実行されるプロシージャを作成して、すべての未処理のタスクに電子メールを送信することができます。
構文
APEX_UTIL.SET_SECURITY_GROUP_ID (
p_security_group_id IN NUMBER);
パラメータ
表36-105 SET_SECURITY_GROUP_IDのパラメータ
パラメータ | 説明 |
---|---|
|
これは、作業中のワークスペースのセキュリティ・グループIDです。 |
例
この例では、過去1日にタスクを割り当てた各ユーザーにアラートを送信します。
create or replace procedure new_tasks
is
l_workspace_id number;
l_subject varchar2(2000);
l_body clob;
l_body_html clob;
begin
l_workspace_id := apex_util.find_security_group_id (p_workspace => 'PROJECTS');
apex_util.set_security_group_id (p_security_group_id => l_workspace_id);
l_body := ' ';
l_subject := 'You have new tasks';
for c1 in (select distinct(p.email_address) email_address, p.user_id
from teamsp_user_profile p, teamsp_tasks t
where p.user_id = t.assigned_to_user_id
and t.created_on > sysdate - 1
and p.email_address is not null ) loop
l_body_html := '<p />The following tasks have been added.';
for c2 in (select task_name, due_date
from teamsp_tasks
where assigned_to_user_id = c1.user_id
and created_on > sysdate - 1 ) loop
l_body_html := l_body_html || '<p />Task: '||c2.task_name||', due '||c2.due_date;
end loop;
apex_mail.send (
p_to => c1.email_address,
p_from => c1.email_address,
p_body => l_body,
p_body_html => l_body_html,
p_subj => l_subject );
end loop;
end;
親トピック: APEX_UTIL