在非sys,system用戶的存儲過程中,查詢v$開頭的視圖,如v$mystat,v$statname等。這些視圖查詢是需要在sys下顯示授權後才能在存儲過程中使用。
但是,如果我們使用grant on v$view to username,則會收到ORA-02030錯誤。
如下所示:
SQL> grant select on v$mystat to scott;
grant select on v$mystat to scott
ORA-02030: 只能從固定的表/視圖查詢
這是因爲v$mystat不是一個視圖,其實它是一個同義詞。
因此,需要將同義詞對應的視圖進行授權。
SQL> grant select on v_$mystat to scott;
Grant succeeded
小技巧,你也可以試試看。