ORA-01031:權限不足


oracle執行存儲過程出錯

create or replace procedure test1as sql1 varchar2(4000);no_result exception;begin     sql1:='update oa.test set id =1';     execute immediate sql1;     commit;exception         when no_result then              dbms_output.put_line('error');end;
這個存儲過程用來更新用來用戶一個表,然后OANEWPLATDJ登錄執行時報

ORA-01031:權限不足
ORA-06512:在"OANEWPLATDJ.TEST1",line8
ORA-06512:在line 3

百度之,

有兩種方法可以解決:一、創建存儲過程時在存儲過程名后增加  Authid Current_User 如
create or replace procedure tt_senquence  Authid Current_User is ...
 
二、顯示授予該用戶相關系統權限 如:
grant update any table to  &user_name;
grant insesrt any table to  &user_name;

兩種方法各有利弊;
第一種方法不用顯示授於各種系統權限,比較方便。
但如果在job中調用該存儲過程則還會報ORA-01031: 權限不足的錯誤。

第二種方法:雖然麻煩,但可以解決job中調用存儲過程的問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM