job中呼叫儲存過程,儲存過程使用AUTHID CURRENT_USER,還出現ORA-01031

mahanso發表於2011-02-09
      今天寫一個儲存過程,儲存過程使用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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章