我该如何列出正在运行的数据库定时作业?

12

我是 Oracle 的新手。我需要获取数据库中的定时作业。

我查询了

DBA_SCHEDULER_JOBS, 
DBA_SCHEDULER_SCHEDULES, DBA_SCHEDULER_PROGRAMS,
 DBA_SCHEDULER_JOB_CLASSES, DBA_JOBS.

但是Oracle会报错

"ORA-00942: table or view does not exist".

当我查询 ALL_JOBS 和 USER_JOBS 时,没有检索到任何行。请建议我应该查看哪个表。

3个回答

12

DBA视图是受限制的,因此除非您以DBA或类似特权用户的身份连接,否则无法查询它们。

ALL视图显示您被允许查看的信息。通常这将是您提交的作业,除非您拥有其他特权。

您所需的特权在管理指南中定义。了解更多

因此,您需要一个DBA帐户或与DBA团队交谈以获取您所需的信息访问权限。


13
如果您不想阅读手册:SELECT * FROM ALL_SCHEDULER_JOBS; - user565869

3

2
由于 SCHEDULER_ADMIN 角色是一个强大的角色,允许授权者以任何用户的身份执行代码,因此您应该考虑单独授予调度程序系统权限。对象和系统权限使用常规 SQL 授予语法授予。例如,如果数据库管理员发出以下语句:

GRANT CREATE JOB TO scott;

执行此语句后,scott 可以在他的模式中创建作业、计划或程序。

摘自 http://docs.oracle.com/cd/B19306_01/server.102/b14231/schedadmin.htm#i1006239


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接