本地的oracle是11的版本,所以客户端也是11的版本,所以使用该11的客户端搭配plsql无法连接oracle12c的数据库。
但是我又不想去本地重新安装12c的oracle,下面就是解决方案。
1.下载客户端

https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html
保证这个客户端的版本大于等于12c的oracle即可!

2.配置客户端

解压客户端,将instantclient_19_6放在D:\app\hspcadmin\product\11.2.0路径下面
然后在instantclient_19_6这个目录下新建sqlnet.ora和tnsnames.ora两个文件

3.sqlnet.ora文件内容

SQLNET.AUTHENTICATION_SERVICES= (NTS)   
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

4.tnsnames.ora文件内容

orcl =   
(DESCRIPTION =      
  (ADDRESS_LIST =         
    (ADDRESS = (PROTOCOL = TCP)(HOST = *192.168.146.143* )(PORT = *1521*))      
  )       
  (CONNECT_DATA =        
    (SERVICE_NAME = *orcl* )      
  )
)

5.配置环境变量

变量名                       变量值
TNS_ADMIN            D:\app\hspcadmin\product\11.2.0\instantclient_19_6

6.注意TNS_ADMIN如果不配置会报错

注:这里变量值即为instantclient在本地的主目录;如果不配置该变量,
连接时会报错ORA-12154: TNS:could not resolve the connect identifier specified
  1. 安装PL/SQL Developer,并配置oracle的连接参数:
需要注意的是:plsql的位数和客户端要保持一致,否则会报错OCIDLL foced to return 0 累死错误
打开PL/SQL,Tools–>Preferences,配置Connection的Oracle Home和OCI library

64为plsql配置如下:
20200714200034.png

32为的plsql配置如下:

20170912134657282.png

8.PLSQL乱码

配置oracle客户端所在环境的字符集,使其与oracle服务器内部字符集配置保持一致,如果是window系统,但是没有安装oracle客户端,可以设置系统环境变量
NLS_LANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK,解决中文乱码问题