执行Job出错

[复制链接]
查看11 | 回复7 | 2015-2-12 06:00:15 | 显示全部楼层 |阅读模式
我写了一个存储过程,想用Job自动执行它,但是运行job的时候出错了,不知道什么问题
存储过程如下:create or replace procedure update_datasize ascursor curisselect tablecode,datasizefrom T_SUBMITDATA where tablecode is not null; str varchar(2000):=''; str1 varchar(2000):='';v_num binary_integer;beginfor I in cur loopstr:='select count(0) from gdcreditbase.'||I.tablecode;execute immediate(str) into v_num;if v_numi.datasize thenstr1:='update T_SUBMITDATA set datasize='||v_num||' where tablecode ='''||I.tablecode||''''; execute immediate(str1);commit;end if;end loop;end;复制代码job如下declare job1 number;begin dbms_job.submit(job1,'update_datasize;',sysdate,'next_day(sysdate,''星期日'')+0/24'); end; 复制代码执行job的时候出现下面这个问题
执行job语句begindbms_job.run(44);end;复制代码出错提示:
ERROR at line 1:
ORA-12011: execution of 1 jobs failed
ORA-06512: at "SYS.DBMS_IJOB", line 463
ORA-06512: at "SYS.DBMS_JOB", line 282
ORA-06512: at line 3

回复

使用道具 举报

千问 | 2015-2-12 06:00:15 | 显示全部楼层
用户有执行存储过程的权限,有创建job的权限,执行时间我是想每个周日的晚上0点
回复

使用道具 举报

千问 | 2015-2-12 06:00:15 | 显示全部楼层
你正常跑这个PROC报错么
回复

使用道具 举报

千问 | 2015-2-12 06:00:15 | 显示全部楼层
DJQTDJ 发表于 2015-8-11 12:35
你正常跑这个PROC报错么

不报错,跑这个存储过程是正常执行的
回复

使用道具 举报

千问 | 2015-2-12 06:00:15 | 显示全部楼层
你看下job里面的日志
回复

使用道具 举报

千问 | 2015-2-12 06:00:15 | 显示全部楼层
oracle_cj 发表于 2015-8-11 12:48
你看下job里面的日志

+1
回复

使用道具 举报

千问 | 2015-2-12 06:00:15 | 显示全部楼层
oracle_cj 发表于 2015-8-11 12:48
你看下job里面的日志

Job日志里面报的是权限不足ORA-12012: error on auto execute of job 61ORA-01031: insufficient privilegesORA-06512: at "GDCREDIT.UPDATE_DATASIZE", line 13ORA-06512: at line 1复制代码但是我执行存储过程是有权限的,手动执行它是可以的。执行job的时候还需要赋什么权限吗?
回复

使用道具 举报

千问 | 2015-2-12 06:00:15 | 显示全部楼层
查一下 user_errors
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行