天天看點

PL/SQL 安裝出現的一些問題

一  、

報錯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,添加了環境變量後,中文顯示正常了。