我写了一个程序和一个工作。 从工作我正在运行程序。以下是创建作业的脚本
DBMS_SCHEDULER.create_job (job_name => 'IBPROD2.RUN_FETCH_ACCT_ALERTS',
job_type => 'STORED_PROCEDURE',
job_action => 'FETCH_ACCT_ALERTS',
start_date => sysdate,
repeat_interval => 'FREQ=HOURLY;INTERVAL=2;',
enabled => TRUE,
auto_drop => FALSE
);
创建作业后,我正在运行以下命令来获取所有者IBPROD2的作业详细信息,其中我可以看到RUN_FETCH_ACCT_ALERTS作业的failure_count列值为1。 手动运行时,程序FETCH_ACCT_ALERTS没有问题。
任何人都可以帮助我解决工作失败的原因吗?我错过了什么吗?
答案 0 :(得分:8)
查询ALL_SCHEDULER_JOB_RUN_DETAILS视图(或者DBA等效视图)。
select *
from all_scheduler_job_run_details
where job_name = 'IBPROD2.RUN_FETCH_ACCT_ALERTS'
您会对error#
特别感兴趣,它会为您提供一个可以查找的Oracle错误号。此外,additional_info
列可能还有一些其他信息。
错误代码表示this:
ORA-28179:代理人未提供的客户用户名
原因:代理用户没有为客户端用户提供用户名 操作:指定客户端数据库用户名,可分辨名称或X.509证书。
因此,这与您的安全设置有关。身份验证失败是有原因的。由于我缺乏对您的架构的详细了解(而且我不是安全专家),我无法帮助您。
因为我已经创建了许多工作来运行不同的程序 与同一所有者。一切都运行成功。
那么这个程序与其他程序有何不同?