關於Oracle建立儲存過程時,訪問不同Schema下的表報錯:ORA-00942的問題

wangyiou1988發表於2013-12-02
    問題描述:
在將一個儲存過程從

ORA-00942: table or view does not exist
解決過程:
檢視儲存過程,原來是在select不同schema下的表時,報了這個錯。


首先想到的是不是沒有授權,在Sql查詢介面執行了一下select操作,可以正常查詢,這是怎麼回事?有查詢許可權啊......


檢查了下儲存過程語法,OK沒有問題。


google了一把,找到答案,oracle在同一SID下不同的使用者隱式的包含了訪問其他schema的select許可權(大概是這個意思,具體得查oracle相關文件),這是之前為什麼可以查詢的原因。


解決辦法:
顯示的再次授權,grant select on [schema.tabname] to [user]
如果是v$session這樣的話,不能寫sys.v$session,要寫v_$session,才會成功。
重新執行建立儲存過程,ok,一切正常!
看來還是得靠萬能的google啊,阿門!

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

相關文章