PL/SQL Developer中文网站 > 售前问题 > PL/SQL怎么连接Oracle数据库 PL/SQL数据库连接失败怎么解决

PL/SQL怎么连接Oracle数据库 PL/SQL数据库连接失败怎么解决

发布时间:2026-10-30 16: 58: 00

同事发来数据库地址、账号和密码,填进登录窗口却连不上,提示有时是找不到服务,有时又变成用户名或密码错误。几类报错对应的检查位置并不一样,反复重输密码往往没有用。日常所说的“用PL/SQL连接数据库”,通常指使用PL/SQL Developer这款工具,PL/SQL本身是Oracle的编程语言。下面围绕这款工具,说明连接设置和失败后的检查方法。

一、PL/SQL怎么连接Oracle数据库

PL/SQL Developer通过Oracle客户端建立连接。开始前应准备数据库主机地址、监听端口、服务名及账号,服务名与实例名不能直接混用。

1、核对工具与Oracle客户端位数

电脑是64位系统,不代表安装的软件全是64位。PL/SQL Developer与它加载的Oracle客户端需要位数一致,数据库服务器的位数则不必与本机工具相同。

①打开【帮助】→【关于】,查看PL/SQL Developer版本及位数,核对已安装Oracle客户端的位数。

②进入【工具】→【首选项】→【Oracle】→【连接】,检查【Oracle Home】和【OCI库】。

③需要指定客户端时,在【OCI库】中选择对应的【oci.dll】,保存设置并重新启动软件。

2、使用地址和服务名登录

①打开【登录】窗口,在【用户名】和【口令】中填写数据库账号及密码。

②在【数据库】中填写【//主机地址:端口/服务名】,将其中的占位内容替换为实际信息。

③普通账号将【连接为】设为【Normal】,点击【确定】登录。

这种方式使用Easy Connect连接标识,不需要先建立本地连接别名,但仍需要可用的Oracle客户端及相应命名支持。端口应使用实际监听端口,不能看到示例里经常填写1521,就认定所有数据库都用这个值。

3、使用已有连接别名登录

连接别名是本地配置中的名称,便于把主机、端口和服务信息集中保存。别人电脑上能用的别名,换一台电脑未必已经配置。

①打开当前客户端使用的【tnsnames.ora】,核对别名及其中的【HOST】、【PORT】和【SERVICE_NAME】。

②使用集中配置目录时,在Windows【环境变量】中核对【TNS_ADMIN】,确认它指向配置文件所在文件夹。

③重新启动PL/SQL Developer,在【登录】窗口的【数据库】中输入对应别名,填写账号后登录。

二、PL/SQL数据库连接失败怎么解决

排查前记下完整错误编号。客户端无法加载、别名无法解析和账号认证失败,发生在不同环节,不宜同时修改所有设置。

1、无法加载OCI,检查客户端与库文件

①返回【工具】→【首选项】→【Oracle】→【连接】,核对【OCI库】是否指向实际存在的【oci.dll】。

②打开【帮助】→【支持信息】,查看软件识别到的Oracle环境,与准备使用的客户端目录比较。

③重新核对软件与客户端位数,修正路径后关闭并重新启动PL/SQL Developer。

不要从另一台电脑单独复制一个同名DLL来替换。OCI还依赖客户端中的其他组件,库文件存在,并不代表这套客户端已经完整可用。电脑安装多套Oracle客户端时,也要确认当前加载的是哪一套。

2、出现ORA-12154,检查连接名称解析

使用别名连接时,这个错误通常表示连接标识没有被正确解析。此时还没有进入正常的账号认证环节,修改密码一般无助于定位问题。

①核对【登录】窗口中的【数据库】名称,与【tnsnames.ora】里的别名逐字比较。

②检查当前生效的【TNS_ADMIN】或客户端配置目录,打开对应【tnsnames.ora】,核对括号、等号和字符。

③配置了【sqlnet.ora】时,检查【NAMES.DIRECTORY_PATH】是否包含所用命名方式,别名使用【TNSNAMES】,Easy Connect使用【EZCONNECT】。

④返回【数据库】输入实际地址、端口和服务名,使用Easy Connect作对照测试。

3、出现ORA-12541或ORA-12514,分别检查监听与服务

①遇到【ORA-12541】,核对连接中的主机与端口,请数据库管理员确认对应地址上是否有监听进程。

②遇到【ORA-12514】,核对【SERVICE_NAME】;具备服务器访问权限时,执行【lsnrctl services】查看监听已识别的服务。

③将连接中的服务名与检查结果比较,确认数据库或目标可插拔数据库已启动,再重新登录。

ORA-12514表明监听收到了请求,但不认识请求中的服务。服务名填错、目标服务未启动或尚未注册,都值得检查。ORA-12541则要回查目标主机和端口的监听情况,不能把两者都归结为密码不正确。

4、出现ORA-01017或账号锁定,核对认证信息

①遇到【ORA-01017】,在【登录】窗口重新输入【用户名】与【口令】,检查大小写和复制时带入的空格。

②核对【数据库】是否指向账号所属的服务,普通账号保持【Normal】连接方式。

③遇到【ORA-28000】或【ORA-28001】,请有权限的管理员检查账号锁定或密码到期状态,处理后重新登录。

同名账号在不同数据库中可能使用不同密码。地址填到了另一套环境,也可能表现为认证失败。账号已经锁定时,应停止反复尝试,由管理员确认状态;切换为SYSDBA不能解决普通账号的认证问题。

三、PL/SQL连接成功后怎样确认环境正确

登录成功只能说明连接已经建立,还应确认当前用户和服务。尤其同时使用测试库与生产库时,这一步比能否展开对象列表更有意义。

1、查询当前用户和数据库服务

①点击【文件】→【新建】→【SQL窗口】,输入【select user,sys_context('USERENV','SERVICE_NAME'),sys_context('USERENV','DB_NAME')from dual】。

②点击【执行】,核对返回的用户名、服务名与数据库名称。

③使用连接列表管理多个环境时,为对应连接设置清楚的【显示名称】,区分用途。

连接列表中的名称可以自行填写,不能单凭“测试库”三个字认定目标正确。查询返回的信息应与实际连接资料对应,确认前不宜直接运行修改数据的脚本。

2、区分登录成功与对象访问权限

能登录数据库,不代表能够查看所有业务表。对象列表为空或查询提示对象不存在时,应检查所属模式和授权,暂时不用重新安装客户端。

①在【SQL窗口】中查询【select table_name from user_tables】,检查当前账号拥有的表。

②已知目标表属于其他模式时,使用【所属模式.表名】填写对象名称,执行经确认的只读查询。

③查询仍失败时,保留错误编号和目标对象名称,请管理员核对对象位置及当前账号权限。

总结

Oracle连接需要客户端、地址、服务和账号共同配合,错误编号能够帮助缩小检查范围。日常把连接资料和所用客户端记录清楚,换电脑或更换环境时会省去不少重复排查。连接恢复后,也应确认目标数据库和访问权限,避免把“能够登录”直接当作环境已经核对完毕。希望这些内容能帮大家理清连接问题,如有相关需求,欢迎交流咨询。

展开阅读全文

︾

标签:plsql使用,plsql使用教程,plsql连接数据库

PL/SQL Developer
专为Oracle数据库开发
咨询购买
最新文章
PL/SQL怎么连接Oracle数据库 PL/SQL数据库连接失败怎么解决
同事发来数据库地址、账号和密码,填进登录窗口却连不上,提示有时是找不到服务,有时又变成用户名或密码错误。几类报错对应的检查位置并不一样,反复重输密码往往没有用。日常所说的“用PL/SQL连接数据库”,通常指使用PL/SQL Developer这款工具,PL/SQL本身是Oracle的编程语言。下面围绕这款工具,说明连接设置和失败后的检查方法。
2026-10-30
PL/SQL怎么设置异常处理 PL/SQL异常没有被捕获如何排查
PL/SQL可以通过【EXCEPTION】区处理运行过程中出现的异常,包括Oracle预定义异常、没有预定义名称的内部异常以及用户自定义异常。常见的【NO_DATA_FOUND】【TOO_MANY_ROWS】【DUP_VAL_ON_INDEX】【ZERO_DIVIDE】可以直接捕获,自定义业务异常则需要声明并主动触发。出现程序已经编写异常处理但错误仍直接返回调用端时,应重点检查异常发生在哪个代码块、处理器捕获的异常名称是否一致,以及异常是否在声明区或异常处理区再次产生。
2026-08-31
PL/SQL包怎么创建 PL/SQL包体编译后显示无效怎么办
PL/SQL包可以把相关过程、函数、变量和类型放在一起管理。创建时通常分成包规范和包体两部分。包体编译后显示【INVALID】,先别反复点编译,直接查看具体报错行会更快。
2026-07-30
PL/SQL游标怎么使用 PL/SQL游标循环性能差怎么优化
很多Oracle开发在写存储过程或批处理脚本时,都会碰到PL/SQL游标怎么使用,以及游标循环性能差怎么优化的问题。游标的作用是把查询到的数据逐行取出来处理,适合需要按记录去判断、计算或调用其他过程的场景,但游标不是越多越好,如果一条SQL就能完成的事却被写成一行一行循环处理,性能就很容易变差,写PL/SQL游标时,操作者要先判断是否真的需要游标,再去考虑循环写法、提交策略和批量处理方式。
2026-06-30
PL/SQL触发器怎么编写 PL/SQL触发器递归触发怎么排查
PL/SQL触发器的编写,和触发器递归触发的排查,这两件事情的关键,是需要先弄清楚触发器到底是在什么时候执行、针对哪一张表来执行、它是执行一次,还是每一行都会执行一次。在Oracle当中,trigger是存储在数据库里面的一种PL/SQL单元,它会在被指定的数据库事件发生的时候,自动地被触发并执行。触发器如果写得好,可以用它来做审计、补充一些字段,或者是进行数据的校验;可要是写得太重了,就容易带来递归触发、性能下降,还有维护起来比较困难这一类的问题。
2026-06-30
PL/SQL Developer怎么调试存储过程 PL/SQL Developer断点不生效怎么排查
一个存储过程能够成功地跑完,并不等于调试器就一定能在预先放好的断点那里停下来。要用PL/SQL Developer把存储过程的调试跑起来,得先满足几个条件才行:登录数据库的那个账号要有调试用的权限,打算调试的目标对象里面要带有调试的时候需要用到的信息,从Test Window里调用的得是当前最新版本的代码,而且断点的位置还要刚好落在那条真的会被执行到的语句上面,这几个条件缺哪一个都可能让断点停不下来。碰到断点没反应的情况,不建议反复去点运行按钮,与其一遍遍地重试,不如按一个固定的顺序逐项排查,更容易找到真正的原因。
2026-06-30

咨询热线 400-8765-888