1.乱码是字符集问题。
GBK:
set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK
(或者set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK)
或者
UTF8:
set NLS_LANG=AMERICAN_AMERICA.UTF8
可以解决。
不知道可以查询一下:select userenv('language') from dual;
若字符集不错在会出现:ORA-12705: invalid or unknown NLS parameter value specified,那就再换个。
2.我遇到链接时报TNS-12557: protocol adapter not loadable
启动监听器时报ORA-27101: shared memory realm does not exist
导致这个原因是我在环境变量里加了ORACLE_HOME,指向的路径是另一个oracle版本,两个客户端和服务器都是在一台机器上,导致oracle找不到部分文件。
解决方法不要设置ORACLE_HOME到全局环境变量,或者要设置的话必须指向oracle服务器的路径。
用bat脚本启动plsql如:
set ORACLE_HOME=E:\oracle\client9.0\ora90 set NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK plsqldev.exe
preferences里面Oracle Home指向你希望的客户端路径。
我的客户端是从其他机器上整个文件夹拷贝过来的。