一 、
報錯dynamic performance tables not
accessible,
automatic statistics disabled for this
session
you can disable statistics in the preference menu,
or obtain select
priviliges on the v$session,v$sesstat and
v$statname tables
解決方法(參見:http://blog.itpub.net/519536/viewspace-614671):
在此,詳細記錄一下這個小問題的三種處理方法。
1.第一種處理方法(不推薦)
就是在報錯的error對話框中将“don‘t
show this message
again”選項選中,下次就不在提示這個錯誤了。
這種方法應該可以叫做“鴕鳥方式”的處理方法。沒有從根本上解決這個問題。
2.第二種處理方法(可以采納)
報錯資訊中描述的非常詳細,原因是動态性能表沒有權利被通路導緻的問題,是以,我們通過把所需通路權限賦予給具體使用者的方法來解決這個問題。
這裡給出我能想到的三種具體處理方法。大家可以繼續補充。
1)如果隻是某一具體使用者有權限查詢這三個動态性能視圖,可以如下進行操作
這裡注意一下:我們授權的視圖是v_$session不是v$session,因為v$session是同名不是具體的視圖。否則您會收到下面這個錯誤。
sys@ora10g>
grant select on v$session to user_sec;
grant select on
v$session to
user_sec
*
error at line 1:
ora-02030: can only select
from fixed tables/views
正确的授權方法如下:
sql>
grant select on v_$session to user_sec;
sql> grant
select on v_$sesstat to user_sec;
sql> grant select on
v_$statname to
user_sec;
2)可以使用下面這個“簡單粗暴”的方法處理之。
grant select any dictionary to
3)以上兩種方法是針對特定使用者的處理方法,如果想讓所有使用者(不局限在上面的user_sec使用者)都能夠查詢這三個動态性能視圖,可以通過将查詢權限授權給public方法來實作,操作如下。這樣就可以保證所有開發人員都不會再出現上述的報錯資訊了。
sql> grant select on v_$session to
public;
sql> grant select on v_$sesstat to public;
select on v_$statname to
3.第三種方法(推薦)
徹底禁掉pl/sql
developer的這個功能。
方法如下:
導航到tools -->
preferences --> options
找到“automatic
statistics”選項,将其前面的小對勾去掉,然後點選“apply”和“ok”儲存退出。
-------------------------------
我使用了第二種和第三種。第二種方法要在sys系統使用者下授權。使用第三種方法是因為不是自己的資料庫,是以沒有系統權限。
二、查詢出的資料中文亂碼
解決方法(參見:http://chlorineatom.blog.163.com/blog/static/68132395201051321115295/):
首先執行語句 select * from v$nls_parameters
檢視第一行中parameter項中為nls_language 對應的value項中是否為simplified
chinese。如果不是,需要設定環境變量。
輕按兩下我的電腦,在空白處右鍵,屬性,“進階”頁籤,點選環境變量,在系統變量處點選“建立”,設定變量名:nls_lang ,
變量值:simplified chinese_china.zhs16gbk 。
我查詢出的是america,添加了環境變量後,中文顯示正常了。