前些天在CentOS里面搭了11G的环境。今天同事用在Win7_x64用PLSQL_Developer去连接时老是提示ORA-12151:无法处理服务名.解决了这个问题,连接进去一查询就提示
一看就是当前连接用户没有对sys用户下的表v$session,v$sesstat,v$statname的select权限,在服务端以sysdba身份登录、授权:
grant select on v_$statname to username; grant select on v_$sesstat to username; grant select on v_$session to username; grant select on v_$mystat to username;
执行了完事后,新问题:ORA-03114:未连接到ORACLE
再查看本地的oracle客户端版本是81的精简客户端,感觉略老。在官网下了个11g的客户端,因为PLSQL_Developer(貌似这个软件并没有x64的)是x32的所以下了x32的版本。官网的下载地址如下:
http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
下载完后解压到D盘根目录下: D:\instantclient_11_2 ,再目录下创建Tnsnames.ora文件:
TEST = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.18.111)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = TEST) ) )
创建一批处理:
@echo off set path=D:\instantclient_11_2 set ORACLE_HOME=D:\instantclient_11_2 set TNS_ADMIN=D:\instantclient_11_2 set NLS_LANG=AMERICAN_AMERICA.AL32UTF8 start plsqldev.exe
放到PLSQL根目录下执行,启动PLSQL后直接取消进去设置:
应用、确定,关闭软件,再次打开软件登陆,问题解决.查询正常.把以下变量加系统变量里,不然查询中文会显示乱码.
NLS_LANG=AMERICAN_AMERICA.AL32UTF8