J'essaie de créer un travail de planificateur Oracle (envoi de courrier) par processus pl/sql (le travail est créé en cliquant sur le bouton). Il crée avec succès fin du travail, mais l'emploi toujours avec l'erreur:Erreur du planificateur Oracle: L'ID du groupe de sécurité (votre identité d'espace de travail) n'est pas valide
"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.
J'ai aussi essayé de mettre security_group_id directement (ou 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
) mais il termine toujours avec la même erreur que mon exemple de code. Lorsque j'essaie de créer un travail manuellement dans SQL Developer cela fonctionne. Mais lorsque le travail est créé par le processus pl/sql, il finit avec l'erreur mentionnée. Le travail est créé avec succès dans les deux cas (processus pl/sql ou manuellement) avec les mêmes paramètres, donc je ne comprends pas pourquoi dans le cas où le travail est créé par pl/sql processus, il finit avec erreur.
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 => ''norepl[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;
J'ai essayé mais j'ai eu une erreur: ORA-20001: Cette procédure doit être appelée à partir d'une session d'application. ORA-06512: à "APEX_050100.WWV_FLOW_MAIL", à la ligne 595 ORA-06512: à "APEX_050100.WWV_FLOW_MAIL", à la ligne 621 ORA-06512: à "APEX_050100.WWV_FLOW_MAIL", à la ligne 654 ORA-06512: à « APEX_050100 .WWV_FLOW_MAIL_API ", ligne 47 ORA-06512: à la ligne 17 – john179
Vous n'avez pas le temps de répondre maintenant, mais ce fil peut aider - https://community.oracle.com/thread/3998543 – RLOG
Aussi, essayez d'utiliser' apex_mail.send' au lieu de 'HTMLDB_MAIL.SEND', suivi de' apex_mail.push_queue(); ' – RLOG