最近公司使用Oracle数据库,默认用PL/SQL Developer做客户端,不需指定Oracle服务器的地址就可以连接,同时在程序开发中连接Oracle数据库也不需要指定主机;
而如果使用Navicat来连接Oracle则需要指定地址,则是需要指定Oracle服务器主机。
- 以下是PL/SQL Developer连接Oracle(不需要指定主机Host):
- 程序开发中连接Oracle( 同样不需要指定Oracle的主机Host):
- 以下是Navicat连接Oracle(需要指定主机Host):
带着这个问题请教了同事给了解答,同时在网上搜寻,找到了详细的讲解。
————————————————————————————————————————————————————————————
以下是网上找到的得到详解的这篇文章: https://www.cnblogs.com/nsw2018/p/9837611.html
安装好Oracle和PLSQLDeveloper后,PLSQLDeveloper登录时没有可选数据库和连接为问题
1.登录PL/SQL Developer
这里省略Oracle数据库和PL/SQL Developer的安装步骤,注意在安装PL/SQL Developer软件时,不要安装在Program Files (x86)目录下,不然无法启动PL/SQL Developer。
奇怪这里为什么选择不到数据库的TNS呢?我是先安装数据库,再安装PL/SQL Developer。按理说安装PL/SQL Developer时,就已经识别到了Oracle Home和OCI Libaray了。管它呢?先以非登录方式登录PL/SQL Developer,设置Oracle Home和OCI Libaray。
在Oracle Home这选项下,没有自动识别到Oracle Home目录,于是手动指定Oracle Home路径。
点击“确定”,退出PL/SQL Developer,再次登录。
还是选择不到数据库TNS,尝试无数据库登录,看看报什么错误。
终于找到问题的关键点了,安装的PL/SQL Deleloper只能识别32的oci.dll。看来是要安个64位的PL/SQL Deleloper,于是在网上搜索PL/SQL Deleloper 64位版本。然而发现PL/SQL Deleloper不区分64位和32位。那看来只能从oci.dll入手了。根据上面的报错信息来看,似乎只要安装一个32位版本的Oracle Client。
2.安装oracle Clinet
首先到Oracle官网上去下载一个Oracle 11g Client,不过需要先申请一个Oracle 帐号,才能下载。
目前下载地址:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html
这个一个绿色版的Oracle Client,因此只要需要解压了,就可以是。将下载的Oracle Client文件instantclient-basic-win32-11.2.0.1.0.zip解压到C盘(注意啦!不能下64位的)。然后在解压后的C:\instantclient_11_2目录下新建NETWORK\ADMIN目录,在ADMIN目录下新建tnsnames.ora文件,添加数据库TNS。
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = chiclewu-PC)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
(注意:tnsnames.ora文件也可以从Oracle数据库HOME目录的NETWORK\ADMIN目录,还要把sqlnet.ora拷贝过来。然后确定HOST配置是否正确,如果HOST是主机名,需要把主机名后面的域名去掉)
3.配置PL/SQL Developer的Oracle Home和OCI Libaray
以非登录模式进入PL/SQL Developer,将Oracle Home路径指定为Oracle Client目录(C:\instantclient_11_2),OCI Libaray路径为Oracle Client目录的oci.dll(C:\instantclient_11_2\oci.dll)。
点击“确定”,现在配置已完成,下面就是等待奇迹的时刻。退出PL/SQL Developer。
4:添加环境变量(系统变量中添加2个)
(TNS_ADMIN 值: E:\app\OYK\product\11.2.0\dbhome_1\NETWORK\ADMIN(oracle11g 安装的位置))
第二个是指定数据库使用的编码。如果不设置成以下值,那么连接上数据库后,你看到的所有中文的内容将会是 乱码,都是一堆问号 。
NLS_LANG 值:SIMPLIFIED CHINESE_CHINA.ZHS16GBK
5.重启plsql,或者电脑验证Oracle Client
打开新的PL/SQL Developer,输入用户名和密码,在database选项下,可以看刚才配置的TNS了。
等待奇迹时刻...........
经过几秒钟的等待,奇迹时刻终于到来了,可以登录了,可以登录了........
检验一下是否可以查询数据。
查询数据没有问题,终于大功告成了。
参考:
https://blog.csdn.net/finality_000/article/details/49681973
https://www.cnblogs.com/ymj126/p/3712727.html
https://blog.csdn.net/ping802363/article/details/54582002