begin
sys.dbms_job.submit(job => :job,
what => 'bmms_pk_statistics.bmmsp_report_com;',
next_date => to_date('24-06-2008', 'dd-mm-yyyy'),
interval => 'TRUNC(SYSDATE+1)');
commit;
end;
/在user_jobs表中已經有了數據,也已經添加上去了!
我用它統計前一天的數據,插入到另外一張表中,每天執行一次!
但是它沒有執行,數據并沒有統計到令一張表中!
手動執行:
execute bmms_pk_statistics.bmmsp_report_com
這樣是可以的,可以看到另一張表中有插入數據!下面 job 是37的會執行!
40和41是同一個,就是上面哪個JOB,它沒有執行! JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
---------- ----------- ------------------------ ---------- ------
41 2008-6-24 00:00:00 0 N
40 2008-6-24 00:00:00 0 N
37 2008-6-24 00:00:00 0 N
48 2008-6-24 00:00:00 0 N
請問高手:這是咋了?半個月啦!
謝謝您給我的幫助!
sys.dbms_job.submit(job => :job,
what => 'bmms_pk_statistics.bmmsp_report_com;',
next_date => to_date('24-06-2008', 'dd-mm-yyyy'),
interval => 'TRUNC(SYSDATE+1)');
commit;
end;
/在user_jobs表中已經有了數據,也已經添加上去了!
我用它統計前一天的數據,插入到另外一張表中,每天執行一次!
但是它沒有執行,數據并沒有統計到令一張表中!
手動執行:
execute bmms_pk_statistics.bmmsp_report_com
這樣是可以的,可以看到另一張表中有插入數據!下面 job 是37的會執行!
40和41是同一個,就是上面哪個JOB,它沒有執行! JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
---------- ----------- ------------------------ ---------- ------
41 2008-6-24 00:00:00 0 N
40 2008-6-24 00:00:00 0 N
37 2008-6-24 00:00:00 0 N
48 2008-6-24 00:00:00 0 N
請問高手:這是咋了?半個月啦!
謝謝您給我的幫助!
解决方案 »
- sqlplus conn sys/oracl as sysdba
- 对于一个很大的数据库表,查询时不能利用索引怎么办?
- oracle大数据量插入时需要重建索引吗
- oracle中数据类型的问题
- oracle这么垃圾怎么还有人用!!数据库我装都装不上!!
- 我想用sql语句来查询数据库中前10条数据,如何实现?(初学者的问题)
- 简单的问题--客户机访问服务器上的oracle,在客户端配端口号要配多少?IP地址要不要配?
- 如何让Oracle表的索引暂时失效?然后恢复有效?
- 监听器故障!救命!
- oracle关于插入数据的问题【急!急!急!】
- 求一句sql文,实现类似组合函数的功能
- 如何做个脚本或者程序批量启动oracle服务?
会报错
/*統計1天之前所有帳戶的發送統計信息,包括代理商,企業下所有用戶的發送信息*/
procedure bmmsp_report_com
as
v_numcount number;
v_numsuc number;
m_numsuc number;
v_numfail number;
m_numfail number;
v_numtotal number;
m_numtotal number;
i integer;
v_vc2userid varchar2(20);
begin
insert into mms_report_com
(vc2userid, datdate, numsuccesssum,numsuccessMoney, numfailsum,numfailMoney,
NUMTOTAL, numtotalMoney, numlevel, numuserguid, numparentguid,numrole)
select r.vc2userid, r.datdate, r.numsuccesssum,r.numsuccessmoney,r.numfailsum,r.numfailmoney,
r.numallsum,r.NUMTOTALMONEY, u.NUMLEVEL,u.numuserguid,u.numparentguid,u.numrole
from mms_report_send r,dgd_user u
where r.vc2userid = u.vc2userid
and trunc(r.datdate) = trunc(sysdate)-1;
commit;
for report in (select t.vc2userid,u.numrole,t.numuserguid,t.datdate from mms_report_com t, dgd_user u
where trunc(t.datdate) = trunc(sysdate) and t.numuserguid=u.numuserguid )
loop if report.numrole = 4 then --普通員工
null;
end if;
if report.numrole = 3 then --
for users in(select vc2userid,numuserguid from dgd_user where numparentguid=report.numuserguid)
loop select count(*),
sum(numsuccesssum),
sum(numsuccessmoney),
sum(numfailsum),
sum(numfailmoney),
sum(numtotal),
sum(numtotalMoney)
into v_numcount,v_numsuc,m_numsuc,v_numfail,m_numfail,v_numtotal,m_numtotal
from mms_report_com
where numuserguid=users.numuserguid --子帳號
and trunc(datdate) = trunc(report.datdate); if v_numcount>0 then
update mms_report_com set
numsuccesssum=numsuccesssum+v_numsuc,
numsuccessmoney=numsuccessmoney+m_numsuc,
numfailsum=numfailsum+v_numfail,
numfailmoney=numfailmoney+m_numfail,
numtotal=numtotal+v_numtotal,
numtotalmoney=numtotalmoney+m_numtotal
where numuserguid=report.numuserguid--當前帳號
and trunc(datdate) = trunc(report.datdate);
commit;
end if;
end loop;
end if;
if report.numrole = 2 then --
for users in(select vc2userid,numuserguid from dgd_user where numparentguid=report.numuserguid)
loop select count(*),
sum(numsuccesssum),
sum(numsuccessmoney),
sum(numfailsum),
sum(numfailmoney),
sum(numtotal),
sum(numtotalMoney)
into v_numcount,v_numsuc,m_numsuc,v_numfail,m_numfail,v_numtotal,m_numtotal
from mms_report_com
where numuserguid=users.numuserguid--子帳號
and trunc(datdate) = trunc(report.datdate); if v_numcount>0 then
update mms_report_com set
numsuccesssum=numsuccesssum+v_numsuc,
numsuccessmoney=numsuccessmoney+m_numsuc,
numfailsum=numfailsum+v_numfail,
numfailmoney=numfailmoney+m_numfail,
numtotal=numtotal+v_numtotal,
numtotalmoney=numtotalmoney+m_numtotal
where numuserguid=report.numuserguid--當前帳號
and trunc(datdate) = trunc(report.datdate);
--yanghx 20080204
commit;
end if; for childuser in(select vc2userid,numuserguid from dgd_user where numparentguid=users.numuserguid)
loop
select count(*),
sum(numsuccesssum),
sum(numsuccessmoney),
sum(numfailsum),
sum(numfailmoney),
sum(numtotal),
sum(numtotalMoney)
into v_numcount,v_numsuc,m_numsuc,v_numfail,m_numfail,v_numtotal,m_numtotal
from mms_report_com
where numuserguid=childuser.numuserguid--子子帳號
and trunc(datdate) = trunc(report.datdate); if v_numcount>0 then
update mms_report_com set
numsuccesssum=numsuccesssum+v_numsuc,
numsuccessmoney=numsuccessmoney+m_numsuc,
numfailsum=numfailsum+v_numfail,
numfailmoney=numfailmoney+m_numfail,
numtotal=numtotal+v_numtotal,
numtotalmoney=numtotalmoney+m_numtotal
where numuserguid=report.numuserguid--當前帳號
and trunc(datdate) = trunc(report.datdate);
--yanghx 20080204
commit;
end if;
end loop;
end loop;
end if;
end loop;
end;
存儲過程沒有問題,可以執行!
中间bmms_pk_statistics是用户名么
我以前也试过
用job跑其他user的存储过程
虽然有权限跑但是就是用job出错
建到自己用户下跑就没有问题了
JOB NEXT_DATE NEXT_SEC FAILURES BROKEN
---------- ----------- ------------------------ ---------- ------
41 2008-6-24 00:00:00 0 N
40 2008-6-24 00:00:00 0 N
37 2008-6-24 00:00:00 0 N
48 2008-6-24 00:00:00 0 N 這些都是同一個用戶,37會執行!40 沒有執行!
我手動執行的時候,也不會報錯!run job!