pl/sqlプロセスによってoracleスケジューラ・ジョブ(メール送信)を作成しようとしています(ジョブはボタン・クリック時に作成されます)。それは成功したジョブを作成するが、ジョブは常にエラーで終了:Oracleスケジューラ・エラー:セキュリティ・グループID(作業領域ID)が無効です
"ORA-20001: Security Group ID (your workspace identity) is invalid. ORA-06512: at "APEX_050100.WWV_FLOW_SECURITY", line 2939 ORA-06512: at "APEX_050100.HTMLDB_UTIL", line 3014 ORA-06512: at line 7 ORA-06512: at line 7.
私も直接security_group_id(apex_util.set_security_group_id(p_security_group_id => my_worspace_id
または wwv_flow_api.set_security_group_id(p_security_group_id=>my_worspace_id
)を設定しようとしたが、それは常に私のサンプルコードと同じエラーで終了します。私はSQL Developerで手動でジョブを作成しようとすると動作します。しかし、ジョブがpl/sqlプロセスによって作成された場合は、上記のエラーで終了します。ジョブは、両方のケース(pl/sqlプロセスまたは手動)で同じパラメータを使用して正常に作成されるため、ジョブがpl/sqlプロセスで作成された場合にエラーで終了する理由を理解できません。
BEGIN
DBMS_SCHEDULER.CREATE_JOB (
job_name => '"INVERTORY"."TEST"',
job_type => 'PLSQL_BLOCK',
job_action => 'begin
for c1 in (
select workspace_id
from apex_applications
where application_id = 104)
loop
apex_util.set_security_group_id(p_security_group_id =>
c1.workspace_id);
end loop;
HTMLDB_MAIL.SEND(
p_to => ''****.****@****.com'',
p_from => ''[email protected]****.com'',
p_subj => ''test mail'',
p_body => ''komu'');
end;',
number_of_arguments => 0,
start_date => TO_TIMESTAMP_TZ('2017-08-28 10:29:57.000000000 EUROPE/PRAGUE','YYYY-MM-DD HH24:MI:SS.FF TZR'),
repeat_interval => NULL,
end_date => NULL,
enabled => TRUE,
auto_drop => FALSE,
comments => '');
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"INVERTORY"."TEST"',
attribute => 'logging_level', value => DBMS_SCHEDULER.LOGGING_OFF);
DBMS_SCHEDULER.enable(
name => '"INVERTORY"."TEST"');
END;
私は試しましたが、エラーがあります。ORA-20001:このプロシージャは、アプリケーション・セッション内から起動する必要があります。 ORA-06512: "APEX_050100.WWV_FLOW_MAIL" で、ライン621 ORA-06512: "APEX_050100.WWV_FLOW_MAIL" で、ライン654 ORA-06512:APEX_050100」AT "APEX_050100.WWV_FLOW_MAIL"、ライン595 ORA-06512で.WWV_FLOW_MAIL_API "、行47 ORA-06512:行17 – john179
今すぐ返信する必要はありませんが、このスレッドは役に立ちます - https://community.oracle.com/thread/3998543 – RLOG
また、 'apex_mail.push_queue();'の後に 'HTMLDB_MAIL.SEND'の代わりに' apex_mail.send'を追加します。 – RLOG