重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
主要是管理Jobs物件(Jobs页签)
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名申请、虚拟主机、营销软件、网站建设、梅州网站维护、网站推广。
JOB分类有dba_jobs
,
all_jobs
,
user_jobs
,
dba_jobs_running
查询所有JOB
SELECT
JOB,
NEXT_DATE,
NEXT_SEC,
FAILURES,
BROKEN
FROM
ALL_JOBS;
或
SELECT
*
FROM
ALL_JOBS;
删除JOB
(一个一个删,我不记得有没有一次全删的命令)
begin
dbms_job.remove(:job);
--:job可以用dba_jobs.job的值代替如:1198
end;
查询job:
select * from sys.user_jobs;
删除job:
dbms_job.remove(47);
备注:47是上面查询job查询出来的job值。
SELECT SID,JOB FROM DBA_JOBS_RUNNING; 查询job,找到你要的那个job号
job:dbms_job.remove(jobno); 移去job号
--必须以创建job用户删除job,不然报ora-23421,任务不在任务列表中
sqlplus wisdomone/system
spool /oracle/deletejob.sql
--生成批量删除job脚本
select 'exec dbms_job.remove('||job||');' from dba_jobs where schema_user='WISDOMONE' and what like '%proc_arg%';
--运行删除job脚本
@/oracle/deletejob.sql
--查询job是否删除
select count(1) from dba_jobs where schema_user='WISDOMONE' and what like '%proc_arg%';
首先,以dba权限登录
然后,用以下查询语句看一下,这个job是否存在:
SELECT * FROM Dba_Jobs a WHERE a.WHAT = 'p_DayLog_SysJob;';
其中p_DayLog_SysJob就是这个job执行的对象。
如果知道job号,则用以下查询语句看一下:
SELECT * FROM Dba_Jobs a WHERE a.JOB = 1;
其中1是job号。
当然不能直接删除....提示都已经说得很清楚了,违反完整约束条件!
因为jobs表中某些字段被其他表引用为外键了,当然不能直接删除,你要先删除子表中相关的记录,才能删除jobs表中的记录。
简单说,a(id,name,deptno) b(deptno,deptname)
你要删除b表中deptno为1的数据,那么得先删除a表中deptno为1的数据,因为a表中的deptno字段是引用b表的,b表中该字段不存在1,那么a表中也就不能存在这种记录。
所以,方法两种:
1、先删除子表中相关记录,再删除父表中数据
2、改变外键模式,删除外键,重建,并指定级联删除模式,这样,可以直接删除父表的数据,子表的数据也同时自动删除,不用人工干预。详细做法,网上有很多