PLSQL连接Oracle数据库问题及详解

一、Oracle数据库安装步骤参考:https://jingyan.baidu.com/article/363872eccfb9266e4aa16f5d.html

二、Oracle客户端安装:https://www.jb51.net/article/101306.htm

三、PLSQL安装或使用免安装版本。

四、PLSQL连接Oracle问题汇总:

  PLSQL Developer 连接 64位Oracle 数据库需要找到两个东东:

  1、32位的 oci.dll 文件
    因为PLSQL Developer 为32位软件,故在访问 Oracle 11g 64位数据库时,需首先经过32位的oci.dll这个中间人再与64位oracle 数据库通信。故在PLSQL Developer访问 64位oracle 数据库时,必须要能能找到 32位的 oci.dll文件位置。 32位 oci.dll的获取有两种方式,一是再安装一个32位Oracle 11g 客户端;二是直接从网络下载一个包含32位 oci.dll 的简易安装包。所以如果你安装64位的客户端,用plsql是连接不上数据库的。就是说如果你安装的是64位Oracle,则如果用plsql必须安装一个32位的oracle客户端。
  2、ORACLE_HOME 目录(即 Oracle主目录)
    找 ORACLE_HOME 是为了找到 tnsnames.ora .tnsnames.ora存储数据库连接信息。tnsnames.ora可通过”Net Configuration Assistant”配置,或直接从别的计算机上复制一个该文件放置到 Oracle客户端主目录\network\admin 中即可 。(client安装完成之后会在注册表中写入自己的ORACLE_HOME地址,所以plsql会根据此地址找到tnsnames.ora)

    ORACLE_HOME主目录可以在操作系统中的环境变量中配置(尽量不要采用此办法)。


    解决方法多种多样,但要实现的目标也就上面两个。

五、环境变量配置:

(正常安装情况下请不要主动配置操作系统的环境变量,后期安装client之后容易出问题,因为oracle和oracle client都会有自己的ORACLE_HOME环境变量,这些变量在注册表中是已经存在的,如果再在操作系统中添加系统环境变量,容易引起混乱,从而导致oracle监听服务无法启动等问题)

NLS_LANG
AMERICAN_AMERICA.AL32UTF8
或 SIMPLIFIED CHINESE_CHINA.ZHS16GBK

 

六、PLSQL设置

七、如果安装错误了客户端,需要卸载,卸载参考:https://blog.csdn.net/lanyuxinkong/article/details/49443547

八、PLSQL连接相关问题

  1、打开PLSQL,输入用户名密码连接报错:ORA-12638: Credential retrieval failed

  解决办法:修改sqlnet.ora文件,将 SQLNET.AUTHENTICATION_SERVICES= (NTS) 改为SQLNET.AUTHENTICATION_SERVICES= (NONE)

  如果出现不让保存的权限问题,请把sqlnet.ora文件拷贝到桌面,修改之后再把原来的文件删除,把桌面文件拷贝进去就行了。

  2、输入用户名密码报错:ORA-12541: TNS: 无监听程序

  解决办法:windows服务中启动服务OracleOraDb11g_home1TNSListener。 如果启动不了,请删除windows环境变量中的ORACLE_HOME,因为oracle服务器和oracle客户端都有ORACLE_HOME,可能你配置的是client的oracle_home,所以服务就启动不了,干脆删除掉。注册表中有分别的ORACLE_HOME变量存储。

  3、输入用户名密码登录报错:ORA-12557: TNS: 协议适配器不可加载

近期由于各种原因先后装了几个版本的Oracle数据库及客户端,具体:
1、首先安装了32位的数据库
2、接着安装了32位的Client端
3、最后安装了64位的Client端

期间设置过ORACLE_HOME的路径指向第一步安装的数据库路径。

然后就遇到如下问题:
1、需要64位Oracle Client的程序启动不成功,【报协议适配器不可加载】的错误。解决方案:将ORACLE_HOME指向安装的64位Client的路径即可
2、解决上面的问题后,Toad和PL/SQL等客户端连接数据库报【报协议适配器不可加载】的错误,说明这些程序用的是32位的连接程序,更改ORACLE_HOME又不可取,因为又会回到问题1。

最终解决方案:删除环境变量ORACLE_HOME,两个问题迎刃而解

个人分析应该是各程序会自动检测适用的Oracle连接程序版本,设置ORACLE_HOME后,反倒人为指定了程序使用的Oracle连接程序版本,造成32位和64位混乱的情况。

 另外重要的一点,环境变量生效需要输入命令或者重启操作系统,所以有些问题解决不了,重启操作系统就好了。

 至此,PLSQL连接ORACLE数据库中间会遇到的坑你基本已经踩完了,下面就开始你的PLSQL之旅吧。

转载于:https://www.cnblogs.com/qqflying/p/9262526.html

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值