PLSQL garbled & TNS-12557: protocol adapter not loadable solves 1. garbled is a character set problem.
Set NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
Or
Set NLS_LANG = AMERICAN_AMERICA.UTF8
Yes. 2. I encountered a link to TNS-12557: protocol adapter not loadable start listener times ORA-27101: shared memory realm does not exist cause this is because I added ORACLE_HOME to the environment variable, the pointing path is another oracle version. both clients and servers are on one machine, so that some files cannot be found in oracle. Do not set ORACLE_HOME to a global environment variable, or point to the path of the oracle server. Use the bat script to start plsql, for example:
C code set ORACLE_HOME = E: \ oracle \ client9.0 \ ora90 set NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK plsqldev.exe
In preferences, Oracle Home points to the client path you want. My client copies the entire folder from another machine.