Win7_x64_Oracle11G连接x32 PLSQL_Developer

前些天在CentOS里面搭了11G的环境。今天同事用在Win7_x64用PLSQL_Developer去连接时老是提示ORA-12151:无法处理服务名.解决了这个问题,连接进去一查询就提示

error01

一看就是当前连接用户没有对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
error3
再查看本地的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后直接取消进去设置:

error2

应用、确定,关闭软件,再次打开软件登陆,问题解决.查询正常.把以下变量加系统变量里,不然查询中文会显示乱码.

NLS_LANG=AMERICAN_AMERICA.AL32UTF8