问题1:
现象:输入正确的用户名,密码和数据库IP信息后,点击确定,弹出错误:initialization error Oracle Client not properly installed
原因:本机没有装oracle client(oracle客户端)或是没有配置环境变量
解决方法:下载oracle client并配置系统环境变量
下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
注意:要选择和PLSQL对应的oracle客户端,比如,你的PLSQL是32位的就选择32位的客户端。另外作为测试使用可以选择轻量级的客户端。
配置方法:因为上面地址下载的客户端是压缩包,比如: instantclient-basiclite-windows.x64-11.2.0.4.0.zip
这种方便深入了解oracle客户端的组成,并且占用空间比较小,可以解压到任意目录(解压路径最好不要包含中文)
解压后,在解压目录下创建两个文件名为:tnsnames.ora、listener.ora的文件
listener.ora文件内容为:
LISTENER1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) )
tnsnames.ora文件内容为:
ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) EXTPROC_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)) ) (CONNECT_DATA = (SID = PLSExtProc) (PRESENTATION = RO) ) )
然后配置系统环境变量,在系统变量中新建两个变量
NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
TNS_ADMIN=(oracle客户端解压路径,比如:D:\oracle\instantclient_11_2)
在系统变量Path的值中加上oracle客户端的解压路径,比如:Path=;D:\oracle\instantclient_11_2
问题2:
现象:安装了oracle客户端也配置了系统环境变量,输入正确的用户名,密码和数据库后,点击确定,弹出错误提示:initialization error could not initialize “oracle客户端所在路径” make sure you have the 64 bits oracle client installed.
原因:PLSQL和oracle client之间的版本不对应,PLSQL是64位的,oracle client是32位的
解决办法:更换64位的oracle client版本,并重新配置系统变量
解决成功结果:启动PLSQL界面下方多了一个connect as
备注:同理,如果弹出的错误提示中显示了“make sure you have the 32 bits oracle client installed”,也是说明PLSQL和oracle客户端版本不对应,要么重新下个对应的PLSQL,要么重新下载对应的oracle客户端
问题3:
现象:前面的问题1,问题2都解决了,但是输入正确的用户名,密码和数据库,点击确定,弹出错误提示:Access violation at address ....... in module ......
原因:本地安装的ORACLE版本过低.而你连接的ORACLE版本高
解决方法:下载最新的oracle client版本,然后把系统变量改成最新的版本,再到PLSQL中去配置连接信息。
PLSQL配置方法:启动程序后,点击取消,然后能直接进入主界面,在主界面选择 tools>>preferences>>oracle>>connection,找到ORACLE HOME和OCI LIBRARY,把oracle客户端解压路径复制粘贴进入,注意OCI LIBRARY后面要带上文件名,具体如下图
在配置过程中会弹出一个提示框,提示内容的意思就是这些配置必须重启PLSQL后才生效,所以直接点确定就行了,配置完后记得要确定,然后重启PLSQL
新手问题:
在使用PLSQL时,登录界面上的用户名和密码很简单,只要填写正确就好了,但是数据库要怎么填写呢?
数据库的填写是IP/数据库名,在IP地址和数据库名之间用斜线分隔开。如图