如何列出在我的数据库中运行的预定作业?

时间:2011-10-12 07:37:55

标签: sql oracle jobs privileges

我是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 个答案:

答案 0 :(得分:12)

DBA视图受到限制。因此,除非您作为DBA或类似特权用户连接,否则您将无法查询它们。

ALL视图显示您可以看到的信息。通常情况下,这是您提交的工作,除非您有其他权限。

您需要的权限在“管理员指南”中定义。 Find out more

因此,您需要一个DBA帐户,或者需要与DBA团队聊天才能获得所需信息。

答案 1 :(得分:3)

我认为您需要SCHEDULER_ADMIN角色来查看dba_scheduler表(但是这可能也授予您权利)

请参阅:http://download.oracle.com/docs/cd/B28359_01/server.111/b28310/schedadmin001.htm

答案 2 :(得分:2)

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

授予scott创建工作;

执行此声明后, scott可以在其​​架构中创建作业,计划或程序。

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

复制