ORA-00942: table or view does not exist

xz43發表於2012-10-19
今天執行一個 procedure 突然報錯:這個procedure 不合法.這個都執行好幾年了的procedure 怎麼突然報錯,難道什麼物件被刪除了.如是編輯它,發現報錯的語句是這句:
 
select count(1) into cout from dba_tables where table_name = 'XXSXX';
 
這個 dba_tables  不是系統自帶的檢視嘛,怎麼會報找不到了.如是向高手們請教,大家給我支招如下
方法一 建立 同義詞 並授權:
create synonym test.dba_tables for sys.dba_tables;
grant select on test.dba_tables to test;
 
方法二 直接授權
grant select on sys.dba_tables to  test;
或者
grant select any dictionary to test;
下面這句是把資料字典的查詢許可權都賦予指定使用者,而上面的授權,需要一個個檢視授權了.

 

 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-746800/,如需轉載,請註明出處,否則將追究法律責任。

相關文章