今天写一个储存过程,储存过程使用AUTHID CURRENT_USER,procedure运行test没有问题,正常执行。但是用job调用此储存过程,出现ORA-01031,权限不足。郁闷了很长时间。
代码如下:
create or replace procedure table_bak(v_tablename in varchar2) AUTHID CURRENT_USER is
v_today varchar2(8);
v_sql varchar2(200);
v_Error_code varchar2(200);
v_Error_msg varchar2(200);
begin
v_today := to_char(sysdate,'yyyymmdd');
v_sql := 'create table '||v_tablename||v_today||' as select * from '||v_tablename;
--dbms_output.put_line(v_sql);
execute immediate v_sql;
exception
when others then
v_Error_code := sqlcode;
v_Error_msg := sqlerrm;
insert into tbl_task_log
(task_id,task_name,table_name,end_time,task_log)
values
(seq_task.nextval,
'TABLE_BAK',
v_tablename||v_today,
sysdate,
v_Error_msg ||' -> TABLE_BAK -> ' || v_Error_code);
commit;
end TABLE_BAK;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12272958/viewspace-686914/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12272958/viewspace-686914/