天天看点

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,添加了环境变量后,中文显示正常了。