PLSQL连接Oracle数据库问题及详解
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PLSQL连接Oracle数据库问题及详解
三、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设置
⼋、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之旅吧。