刚才下载安装了PLSQL Developer 11 汉化绿色版,执行SQL查询语句,发现显示的数据中只要有中文都会以?表示。经过网上查询得知这是客户端跟服务器的字符集不匹配造成的。解决方法如下:
1、查询oracle server端的字符集。打开PLSQL的查询窗口中输入下面SQL查询语句。
select userenv('language') from dual
得到的服务器字符集为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
2、我的电脑中环境变量界面,在系统变量中新加:
变量名:NLS_LANG
变量值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
变量值跟服务器查询到的值一致即可。
由此设置步骤可得知此设置不仅仅是针对PLSQL的,所有在客服机上连接ORACLE时显示的中文为?时都必须通过这个方法设置其字符集与服务器上的一致方可正确显示中文内容。
二、PLSQL绿色汉化闷洞敬版设置软件的中文显示
在PLSQL中点击菜单 tools--preferences 在d出的设置窗口中找到 appearance——language 选择简体中文即可。
三、PLSQL登录时,在登录窗口中的数据库内容应如果设置
这个地方PLSQL其实会读取一个文件,文颤橘件的全路径为:ORACLE客服端所在目录 app\Administrator\product\11.2.0\client_1\Network\Admin\tnsnames.ora
如我的ORACLE客户端安装在D盘则 D:\app\Administrator\product\11.2.0\client_1\Network\Admin\tnsnames.ora
一般新装的ORACLE客户端没有这个文件,这个文件需要自己配置或通过ORACLE专门的配置程序进行设置。但更简便的方法是直接从其它已配置过的计算机上将这个文件复制过来。
1、下载odbc驱动需要下载两个东西instantclient-basiclite-nt-12.1.0.1.0.zip instantclient-odbc-nt-12.1.0.1.0.zip由于时间推移,版本号会更新旦烂,网址也会变化。2、解压缩这两个文件到同一个文件夹 a、分别解压缩这两个文件 b、解压缩后两个文件夹里面都有instantclient_12_1目录,将odbc的instantclient_12_1目录下的内容拷贝到basicclient下的instantclient_12_1里面 c、为了使目录整齐简介,将basicclient下的instantclient_12_1目录拷贝到D:\Program Files\instantclient_12_1 3、将oracle数据库所在电脑上的NETWORK目录拷贝到instantclient_12_1目录下,oracle服务器所在电脑的network在D:\oraclexe\app\oracle\product\11.2.0\server这个位置。4、修改NETWORK\ADMIN\tnsnames.ora文件,将主机名换成IP地址。下面例子当中10.17.176.138以前是oracle数据库所在电脑上的主机名。主机名可能无法正确连接,所以换成IP地址。XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.17.176.138)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )5、添加环境变量TNS_ADMIN,变量值指向ADMIN目录,本人的配置是D:\Program Files\instantclient_12_1\NETWORK\ADMIN6、双击instantclient_12_1目录下的odbc_install.exe完成安装。注:安装时出现DOC框,并一闪而过,可能无法判断是不是正确安装。其实可以cmd进入instantclient_12_1目录,并.\odbc_install.exe手动安装。7、配置数据源并测试 为了不影响测试,首先将oracle数据库所在电脑的防火墙关闭,或允许例外TCP 1521端口。配置客户端电脑,控制面板->数据源->用户DSN->添加中选择Oracle in instantclient_12_1,模宴漏TNS Service Name中选择数据库名,本人名字是XE,点Test Connection,如果提示成功就OK了。8、防止乱码在安装数据库的电脑上(我的oracle是安祥猜装在window上的),查看HKEY_LOCAL_MACHINE/SOFTWARE/ORACLE/KEY_XXX下的NLS_LANG值, 在客户端电脑上增加环境变量NLS_LANG,其值是在上面得到的NLS_LANG值。我服务器的NLS_LANG是SIMPLIFIED CHINESE_CHINA.ZHS16GBK欢迎分享,转载请注明来源:内存溢出
评论列表(0条)