PL/SQL Developer 14.0.6安装配置与Oracle连接实战:从tnsnames到中文乱码 📅 发布时间:2026/9/16 6:30:01 👁 浏览次数: 1. 下载与安装前的准备工作1.1 版本选择为什么是14.0.6PL/SQL Developer在Oracle数据库开发工具里属于那种“你绕不开”的老牌工具。我最早接触它还是在9.0版本时代十几年用下来看着它从一个小巧的SQL编辑工具慢慢长成了支持Oracle全系特性的重型客户端。14.0.6这个版本准确说是14.0系列的一个维护版本在稳定性上明显比初版14.0要好很多尤其是在大对象处理、调试器响应速度这些细节上能感觉到官方做了针对性优化。从实际使用角度出发我建议绝大多数开发者选择14.0.6而不是追新尝鲜。原因很简单PL/SQL Developer的UDT用户自定义类型图形化调试、存储过程源码级调试这些核心功能14.0.6都处于一个非常成熟的状态我在生产环境排查问题、日常开发时没遇到过阻断级别的Bug。这个版本对Windows 10和Windows 11的兼容性都很好唯一的区别是它自带的是32位版本连接Oracle数据库时需要配合32位的Oracle客户端。提示如果你用的是Oracle 12c及以上的数据库版本14.0.6完全支持。包括可插拔数据库PDB、JSON数据类型、12c以后的新版数据类型在查询和对象浏览器里都能正常展示。另外关于语言界面14.0.6默认是英文界面但官方提供简体中文语言包。个人建议如果是刚开始接触这个工具直接使用中文界面能减少学习成本。如果是老手英文界面在搜索资料、对照官方文档时会更方便这个看个人习惯不影响功能。1.2 下载渠道与安装包校验下载PL/SQL Developer 14.0.6首选一定是官方网站。搜索引擎里搜“PL/SQL Developer download”认准allroundautomations.com这个域名。这个网站本身做得非常简洁甚至有点老气但这就是官方正统渠道。第三方下载站虽然也有安装包但国内有些站点捆绑了修改版或额外插件安全上不划算。安装包下载下来是一个压缩文件体积大约在30到40MB之间。解压后你会看到setup.exe直接双击运行即可。这里有个小细节值得注意整个安装过程不需要管理员权限可以安装在当前用户目录下。但如果你打算让团队内多个Windows账户共用这个工具建议还是用管理员身份安装到Program Files目录下并在安装时勾选“all users”。安装向导整体比较直白一路Next就行。有两个关键选项需要说明一下Installation directory安装目录默认是C盘我建议改到D盘这类非系统盘。因为后续你可能会往这个目录里放一些自定义的TNS配置、导出脚本等文件重装系统时方便保留。Create desktop icon创建桌面快捷方式建议勾选日常使用频率很高。安装完成后先不要急着打开在第一次启动前我们需要先把运行环境的“地基”打好——也就是Oracle客户端的配置。这一步如果顺序反了打开PL/SQL Developer后会直接卡在登录界面的Tomcat连接超时或者提示“ORA-12154: TNS:could not resolve the connect identifier specified”。需要核对一下安装包的哈希值来确认文件完整性的话可以在压缩包所在文件夹的地址栏输入powershell然后用Get-FileHash命令计算SHA256值和官网提供的校验值对一下。这一步骤在跟安全要求比较严格的公司环境里比较常用个人开发的话凭经验也就够了。2. Oracle客户端与连接配置2.1 两种客户端形态完整版与Instant Client用过PL/SQL Developer的朋友都知道它本身不是一个“直连”工具。想要正常连上Oracle数据库机器上必须先有一个Oracle客户端环境。这里有两种常见做法第一种安装完整的Oracle Client。完整客户端体积较大1到2GB以上安装后自带SQLPlus、ODBC驱动、Oracle Net Manager等一系列工具。如果你平时还需要用SQLLoader、Data Pump之类的命令行工具做数据迁移那装完整版是有道理的。第二种使用Instant Client。这是Oracle官方提供的一个精简版运行库只有几百MB甚至更小只包含必要的网络连接库如oci.dll、tnsnames.ora解析能力等。对于只为了配合PL/SQL Developer做查询、开发、调试的日常工作来说Instant Client完全够用。我个人的选择是Instant Client然后把下载目录固定在一个约定好的路径里比如D:\oracle\instantclient_19_17。需要强调的是PL/SQL Developer 14.0.6是32位应用对应的Oracle客户端也必须是32位版本。这个坑我见过太多人了装了64位的Instant Client结果PL/SQL Developer一启动就报“Could not locate OCI DLL”。原因在于32位进程根本加载不了64位的OCI库进程位数必须匹配。注意64位操作系统上可以同时安装32位和64位的Oracle客户端路径不同即可。如果你手头有多套应用一边跑32位工具一边跑64位程序这是完全可行的。2.2 配置tnsnames.ora与服务命名连接Oracle数据库最常用的方式就是通过服务名称TNS Name。所谓TNS本质上就是一个网络别名到真实连接描述符的映射。以我使用的Instant Client为例配置步骤如下在instantclient目录下新建一个名为network的子目录然后在network下再建一个admin子目录最终路径类似D:\oracle\instantclient_19_17\network\admin。在admin目录里创建tnsnames.ora文件。用记事本编辑该文件写入连接描述。一个标准的tnsnames.ora配置片段如下ORCL19C (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 192.168.1.100)(PORT 1521)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME orcl19c) ) )这里面有几个关键字段解释一下ORCL19C是连接别名也就是你在PL/SQL Developer登录界面看到的“Database”下拉选项。HOST写数据库服务器的IP地址或主机名。PORTOracle默认端口是1521。SERVICE_NAME数据库的服务名不是实例名SID。服务名一般通过初始化参数SERVICE_NAMES配置默认情况下和全局数据库名相同。如果你不确定可以在服务器上执行lsnrctl services命令查看。配置好tnsnames.ora后还需要告诉PL/SQL Developer去哪里找这个文件。有两种办法一种是设置环境变量TNS_ADMIN指向network\admin目录另一种更省心——安装Instant Client后首次打开PL/SQL Developer时它会自动检测并定位到同目录下的tnsnames.ora。我在最初接触时花了很多时间没有搞明白为什么总是提示无法解析连接标识符后来发现就是tnsnames.ora文件放错了位置。这里建议把TNS_ADMIN环境变量显式加上一劳永逸。2.3 OCI库的选择与登录界面填写第一次打开PL/SQL Developer菜单栏的Tools Preferences Oracle Connection中有一个关键配置Oracle Home和OCI Library。直接在OCI Library一栏点击Browse选择Instant Client目录下的oci.dll然后重开PL/SQL Developer让它重新加载这是最稳妥的路径。如果配置正确登录界面的Database下拉框里就会出现tnsnames.ora里定义的别名。登录界面有四个字段需要填写Username用户名比如system、scott或者你创建的业务账号。Password密码对应密码。Database数据库下拉选择TNS别名也可以直接手写连接字符串。Connect as连接身份通常选Normal需要DBA权限操作时选SYSDBA。有个小技巧在Database栏不选别名直接写成host:port/service_name这种格式也可以比如192.168.1.100:1521/orcl19c。这个语法在排查问题时会非常有用因为它绕过了tnsnames.ora的解析直接走EZCONNECT方式连接遇到配置问题一下子就能定位到是不是tnsnames.ora写错了。经验之谈搭建测试环境时我特别喜欢用EZCONNECT格式先验证网络连通性确认能通之后再去优化tnsnames配置。这样可以避免“以为是数据库连不上其实是别名解析失败”这类低效排查。3. 激活与授权处理正版序列号与试用期那些事3.1 产品密钥与序列号的正规获取路径关于PL/SQL Developer的产品密钥、序列号这是每个新用户都会遇到的坎。首先要明确一点PL/SQL Developer是商业软件一份许可对应一位开发者官方支持试用30天。试用期结束后如果你确实需要长期使用购买正版License是唯一合规的方式。官方购买流程比较直接在官网点击“Order”或“Purchase”支持个人和企业购买。付款后你会收到一封包含**Registration Key注册密钥**的邮件里面包含注册码和产品编号。在PL/SQL Developer中打开菜单栏的Help Register把这两项填写进去即可完成注册。注册后产品的试用提示会消失。很多人会问“网上流传的产品编号和序列号能不能用”这个我不做评价但从职业操守角度讲我建议正版授权。特别说明一下PL/SQL Developer的注册是按版本线走的比如14.x的注册码更新到14.0.6是没有问题的但跨大版本比如从12到14一般需要重新购买或升级授权。团队使用时建议在采购申请里写明版本号和授权数量避免后续因版本升级产生纠纷。注意我在网上见过一些声称“PL/SQL Developer 14.0.6产品密钥”的帖子很多其实是针对老版本的旧注册码填入新版会提示无效。如果你确实在负责公司的软件资产管理请务必走官方渠道获取最新密钥。3.2 未注册对功能的影响未注册的PL/SQL Developer在30天试用期内是全功能开放的包括存储过程调试器、Test Manager、DBMS Scheduler操作面板等没有任何功能阉割。试用期结束后工具会弹出注册提醒窗口。在未注册状态下只是会间歇性弹出提示核心功能并不会立即被锁定但如果你点击“Continue”继续使用每次启动时这个提醒会一直出现而且是不可关闭的。这种情况对工作流打断还是比较明显的。从我见识过的情况来说很多中小型团队最后都买了正版License几百块钱的单价在工具软件里已经很良心了。对企业用户而言这笔支出换来的是持续更新和技术支持比在网上找一堆不靠谱的序列号省心得多。4. 中文乱码问题一个容易让人头疼的配置4.1 乱码成因分析“PL/SQL Developer查看视图里文字有乱码”是高发问题。在弄清楚解决办法之前先理解一下它为什么会乱码。Oracle数据库服务器有一个字符集Character Set的概念它决定了数据库内部存储文本时使用哪种编码。常见的包括AL32UTF8数据库中最常用、ZHS16GBK简体中文环境常见、ZHS16CGB231280老旧的早期版本字符集等。而PL/SQL Developer作为一个客户端进程它展示文本时使用的是客户端字符集。Oracle客户端从数据库取回字节串后要按客户端字符集来解释编码如果两边不一致就必然出现乱码。举个例子数据库字符集是ZHS16GBK存储的中文是用GBK编码的。但客户端环境变量NLS_LANG设置成了AMERICAN_AMERICA.UTF8客户端就会尝试将GBK字节串按UTF-8来解析结果就是一片乱码。反过来同样成立数据库是AL32UTF8客户端设置成ZHS16GBK一样也会出问题。4.2 查询数据库字符集搞清楚数据库到底用什么字符集从PL/SQL Developer里执行SQL语句就可以轻松拿到SELECT USERENV(language) FROM dual; SELECT value FROM nls_database_parameters WHERE parameter NLS_CHARACTERSET;第一句返回的是会话语言地域和字符集设置第二句返回的是数据库的字符集。实际工作中我们更关心的是数据库的字符集到底支持不支持中文。如果是AL32UTF8或ZHS16GBK一般就说明字符集本身没问题问题多半出在客户端设置。4.3 Windows下NLS_LANG的配置顺序知道了数据库字符集后我们需要告诉Windows客户端“我该用什么语言和字符集来和数据库通信”。NLS_LANG环境变量的格式是三段式语言_地域.字符集例如SIMPLIFIED CHINESE_CHINA.ZHS16GBK或AMERICAN_AMERICA.AL32UTF8。在Windows上设置NLS_LANG有两种常用方式第一种修改系统环境变量。右键“此电脑” “属性” “高级系统设置” “环境变量”在“系统变量”区域点击“新建”变量名填NLS_LANG变量值填SIMPLIFIED CHINESE_CHINA.ZHS16GBK字符集要和数据库一致保存后重启PL/SQL Developer。第二种在Windows注册表里设置。这种方式主要影响使用Oracle完整客户端的机器。打开regedit定位到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient19Home具体的KEY名称取决于你安装的客户端找到NLS_LANG字符串值修改为合适的值。实操建议如果你用了Instant Client且依赖环境变量方式特别要注意修改环境变量之后必须完全退出并重启PL/SQL Developer不是只关闭窗口最好是确认进程里没有plsqldev.exe再重新打开。还有一个很隐蔽的点当数据库和客户端字符集不同导致数值、日期格式也出现异常时不要急着改NLS_LANG先在会话里执行ALTER SESSION SET NLS_LANG ...这样的操作测试。有些场景下ALTER SESSION只影响会话不会干扰全局配置是排查“是不是字符集如何影响当前连接”的最快方法。5. 导入Excel到数据表的完整流程5.1 场景分析什么时候用ODBC导入PL/SQL Developer里导入Excel是很多人每天都离不开的高频操作。14.0.6版本对此功能的支持已经很完善但操作逻辑和很多人的直觉不太一致需要理清。先说逻辑PL/SQL Developer的“导入”是通过ODBC数据源完成的。Excel文件不是直接被PL/SQL Developer读取而是先通过ODBC驱动把Excel当做一个数据源再由PL/SQL Developer执行INSERT操作写入目标表。有一个核心问题32位PL/SQL Developer搭配的是32位ODBC驱动默认只能访问32位MDB驱动Excel驱动的版本也要匹配。在64位Windows上默认安装的Office Excel驱动是64位的32位的PL/SQL Developer根本找不到它。这时候并不是直接在PL/SQL Developer里操作能解决的需要先安装32位Microsoft Access Database Engine再注册ODBC数据源。5.2 一步步操练自己实践下来的完整步骤如下确认或安装ODBC驱动。到微软官网下载“Microsoft Access Database Engine 2016 Redistributable”注意选择x86版本。安装时如果提示已有更高版本可以选择强制覆盖或直接在ODBC管理器中查看已有驱动。如果系统里已经有64位Office可以尝试命令行静默安装32位驱动。注册ODBC数据源。打开控制面板 管理工具 ODBC数据源32位在“用户DSN”标签下点击“添加”选择“Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)”驱动器然后指定Excel文件路径。有个坑是在Windows 10/11上控制面板里的“ODBC数据源”图标可能默认打开的是64位版本。务必从C:\Windows\SysWOW64\odbcad32.exe手动启动32位的ODBC管理器因为32位的PL/SQL Developer只能看到32位的数据源。打开PL/SQL Developer在菜单栏选择Tools工具 ODBC ImporterODBC导入器。如果是中文显示就是“工具” “ODBC导入器”。在弹出的窗口里选择数据源选中刚才配置的Excel DSN然后选择你要导入的Sheet工作表。这里Sheet名后通常会带有$符号比如Sheet1$正常选中即可。选择目标表。右侧选择目标表这里可以选“Create new table”创建新表或“Append to table”追加到已有表。如果是新表系统会自动根据Excel列数据类型生成建表语句。字段映射确认。检查源列名和目标列名的对应关系类型是否合理。这里要特别注意当Excel中的某一列是空值较多的列时自动推断出来的列类型可能是VARCHAR2(255)你需要根据实际情况调整为目标表字段类型。点击Import或导入按钮。执行后下方日志会显示“X rows imported from Excel successfully”大功告成。5.3 大数据的替代方案SQL*LoaderODBC Importer在处理几千行、几万行的Excel数据时效率不错但如果Excel文件动辄几十万行ODBC导入就会很痛苦。这种情况下我建议转换策略先把Excel另存为CSV文件然后用SQL*Loader批量加载。SQL*Loader的典型控制文件大概长这样load data infile C:\data\employees.csv into table employees fields terminated by , optionally enclosed by (emp_id, emp_name, dept_id, salary)执行命令行sqlldr useridsystem/oracleORCL19C controlload_employees.ctl logload_employees.log速度比ODBC导入快出一个数量级。我在一次需要导入约80万行数据的任务里用SQLLoader不到一分钟就完成了而ODBC导入愣是跑了十几分钟。如果你的主力技能是PL/SQL Developer不熟悉SQLLoader也没关系网上给个控制文件模板就能用。6. 远程连接Oracle的完整方案6.1 网络连通性检查与防火墙放行远程连接Oracle经常卡在“网络到底通不通”这个环节。在打开PL/SQL Developer之前先用命令行验证一下tnsping ORCL19Ctnsping是Oracle客户端自带的小工具用于测试TNS别名是否能解析、数据库服务器的监听端口是否能连通。正常结果末尾会有一行“OK (xx msec)”。如果tnsping不通先判断是DNS或hosts解析问题还是网络层数据包被拦截。此时可以用Ping命令和telnet命令辅助判断ping 192.168.1.100 telnet 192.168.1.100 1521telnet能通说明端口没被防火墙挡问题大概率在Oracle监听服务没起来或者数据库服务没注册到监听。telnet不通则要检查服务器防火墙是否放行了1521端口或者云安全组规则有没有添加。6.2 从“连接不上”到“秒连”的排查路径真到了PL/SQL Developer连不上数据库的时候先按顺序检查数据库实例进程是否在跑。在数据库服务器上执行ps -ef | grep ora_Linux或查看服务管理器Windows确认OracleServiceSID服务已启动。监听器是否正常。执行lsnrctl status确认监听器正在监听1521端口并看到实例已经注册上来。本地tnsnames.ora是否真的被读取到了。可以在PL/SQL Developer登录界面直接复用EZCONNECT写法输入192.168.1.100:1521/orcl19c如果这样能连上而TNS别名连不上说明tnsnames.ora路径不对或者内容有问题。本机是否有多个Oracle客户端版本环境变量PATH里先加载了哪个。这就是“当前目录明明有tnsnames.ora客户端却在别处找配置”的经典场景。6.3 配置多环境切换开发库、测试库、生产库有开发经验的读者一定遇到过这种情况电脑上同时要连几套Oracle环境开发库、测试库都可能不会少。这时候tnsnames.ora里可以配置多个别名DEVDB (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 10.0.1.20)(PORT 1521)) (CONNECT_DATA (SERVICE_NAME devdb))) TESTDB (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 10.0.1.50)(PORT 1521)) (CONNECT_DATA (SERVICE_NAME testdb)))登录时切换Database下拉框即可。我个人的习惯是定期维护一个tnsnames.ora备份文件在同目录下改名成tnsnames.ora.bak。改出问题的时候一键恢复比重新手敲更踏实。7. 常见问题与排查技巧实录7.1 高频报错速查表实际操作中难免碰见各种幺蛾子下面列几个我遇到频率最高的报错信息原因分析解决办法Initialization error: Could not locate OCI DLLOCI库路径没有配置正确或版本位不匹配在Preferences Oracle Connection里重新指定oci.dll路径确保32位/64位一致ORA-12154: TNS:could not resolve the connect identifier specifiedtnsnames.ora里没有对应别名或配置路径错误用TNS_ADMIN显式指定配置文件路径检查别名拼写ORA-12514: TNS listener does not currently know of service requested监听器没有注册目标服务名执行ALTER SYSTEM REGISTER;或重启动监听器检查SERVICE_NAME拼写ORA-01017: invalid username/password; logon denied用户名或密码错误或账号被锁定核对凭据DBA可通过SQL*Plus重置密码中文乱码NLS_LANG与数据库字符集不匹配按第4节方法设置NLS_LANG并重启PL/SQL DeveloperODBC Importer找不到Excel数据源位数不匹配或缺少32位ODBC驱动安装32位Microsoft Access Database Engine打开SysWOW64下的ODBC管理器配置DSN7.2 几个容易踩的隐藏坑坑一系统变量与用户变量都设置了NLS_LANG。这种情况下系统变量优先级更高用户变量的设置会被忽略。所以在修改字符集配置后在命令行里执行echo %NLS_LANG%确认当前生效的到底是什么值。坑二PL/SQL Developer的登录密码保存功能。工具本身提供“Save password”选项可以保存数据库密码。这个功能虽然方便但注意密码是以可逆加密形式存到本地文件里的。在涉密项目或共享电脑上强烈建议不要勾选保存密码改用Oracle Wallet集中管理或者每次手动输入。坑三Window Listener功能在远程连接时被忽略。PL/SQL Developer有个超级好用的功能叫做Window Listener可以把所有打开的SQL窗口/命令窗口统一管理。但如果数据库连接不稳定这个功能偶尔会导致窗口列表不同步。遇到这种问题先检查是否断连不要直接重装软件。7.3 保存密码与登录效率的小技巧已经装好并配置完的机器每次登录都要输入一大堆信息确实麻烦。可以考虑这样优化将常用连接别名放在tnsnames.ora最上方这样登录界面的Database下拉框默认就是你要用的库。在登录界面把“Connect as”默认设为Normal避免手滑点到SYSDBA。经常连同一账号的在Preferences User Interface Language里把语言设置成简体中文减少界面阅读时的思维转换。8. 日常使用中的几个细节建议8.1 记住密码与安全边界的平衡很多开发者用PL/SQL Developer最喜欢勾选“Save password”。我自己平时在个人开发机上也会用但有一套自己的判断标准仅用于本地开发库且密码不是高权限账号生产环境从不保存密码共享电脑、演示电脑上强制不保存。另外Windows账号本身要用强密码并设置锁屏策略这样即使PL/SQL Developer保存了密码非法用户拿到操作系统权限还是有一定门槛。8.2 用Testing Tool配合日常开发PL/SQL Developer除了是个SQL查询工具它本身还是个很完整的PL/SQL开发套件。菜单里的Test Tool可以直接调试存储过程、函数和包支持设置断点、单步执行、观察变量。很多同事用了多年这个工具却一直只知道用它写SQL。实际上在线调试存储过程时Test Tool比任何第三方工具都好用。调试会话里还支持实时看DBMS_OUTPUT输出省去了来回在SQL窗口里调用和打印的麻烦。8.3 配置自定义快捷键和模板Preferences Editor AutoReplace里有自动替换的捷径。比如输入sf自动替换成SELECT * FROM输入sfw自动替换成SELECT * FROM ... WHERE ...。这项功能配置好以后写SQL的日常手感相当流畅。还有一个我离不开的功能是Window Listener里的Filter窗口开得多了以后输入关键字快速过滤定位不用在几十个窗口里翻来翻去。9. 写在最后的体会PL/SQL Developer这个工具表面上看是一个简单的数据库客户端但用深了会发现它的设计逻辑里嵌入了非常多Oracle数据库开发的真实痛点。从tnsnames.ora的解析到OCI库的加载方式再到ODBC导入的底层机制这些事情搞明白之后你不仅会用PL/SQL Developer还会顺手弄懂了Oracle客户端体系的一大半知识。我记得自己第一次配置远程连接时因为没有理解TNS_ADMIN和OCI位数的关系折腾了一个下午最后发现只是把oci.dll指向了64位目录。踩过这些坑之后我养成了一个习惯——每次在Windows上部署一个新的Oracle开发环境会先在命令行里跑一遍tnsping和一条简单的查询验证连通再打开PL/SQL Developer。这个“先命令行后图形界面”的顺序帮助我避开了很多不必要的折腾。最后分享一个小的使用习惯在Tools Preferences里把“Query Window Text”里的默认编辑器字体设置成支持中文等宽的字体比如Consolas或微软雅黑Consolas混合这样查看中文数据、对齐格式化SQL时体验会好很多。祝各位用PL/SQL Developer刷库顺利少踩坑多出活。