Oracle 开发环境配置:从概念混淆到成功连接(总结对比:PL/SQL Developer 使用一键启动脚本连接 和 SQL Developer 的连接方式) 📅 发布时间:2026/8/19 23:40:13 👁 浏览次数: 【Oracle开发环境配置指南】本文记录了新手配置Oracle开发环境的完整过程与经验总结。首先澄清了四个关键概念Oracle 数据库本体服务端SQL Developer官方免费客户端PL/SQL Developer第三方付费客户端示例数据脚本针对工具选择详细分析了SQL Developer跨平台、免安装、JDBC直连与PL/SQL DeveloperWindows专用、需客户端配置的优劣势推荐前者作为远程开发首选。在连接配置环节重点讲解了如何从TNS配置转换为JDBC直连并针对ORA-12541错误提供了排查思路先用telnet测试端口连通性再联系DBA。最后总结了核心避坑要点1区分服务端与客户端工具2优先使用SQL Developer的JDBC直连3明确TNS别名与服务名的区别4网络问题优先检查端口连通性。文中还包含客户端存在性检查、字符集设置等实用技巧为Oracle初学者提供了完整的配置路线图。记一次 Oracle 开发环境配置从概念混淆到成功连接“PL/SQL Developer 11g”这个“11g”指的是它针对 Oracle 11g 数据库做了优化是一个版本标识。正因为 Oracle 有自己的“SQL Developer”又常用“11g”、“12c”这样的数据库版本号再加上“PL/SQL”这个关键词所以这几个名字特别容易混淆。缘起一个下载链接引发的“血案”一切始于我想在本地配置一个 Oracle 数据库环境。我信心满满地访问了 GitHub 上的oracle-samples/db-sample-schemas仓库下载了最新的 Source code (zip) 文件以为这就是 Oracle 21c XE 的安装包。直到准备动手安装时我才隐约觉得哪里不对。从官方发布页下载的db-sample-schemas压缩包是示例表Sample Schemas的安装脚本而不是 Oracle 21c XE 数据库软件本身。既然你不需要安装示例表那么完全不需要解压和使用这个文件。第一关拨开迷雾认清 Oracle 生态圈的四张面孔名称真实身份一句话比喻Oracle Database 21c XE数据库本体存储数据的地方汽车的引擎SQL DeveloperOracle 官方的免费客户端工具汽车的原厂方向盘PL/SQL Developer第三方的商业客户端工具汽车的改装方向盘db-sample-schemas给空数据库填充的示例数据脚本引擎用的测试燃料混淆复盘混淆一以为db-sample-schemas是数据库安装包。实际上它只是一堆 SQL 文件。Oracle 21c XE 的安装包通常叫OracleXE212.exe或oracle-database-xe-21c-1.0-1.x86_64.rpm。混淆二以为Oracle Database 21c XE就是SQL Developer。前者是服务端后者是客户端如同引擎和方向盘的关系。混淆三以为SQL Developer和PL/SQL Developer是同一家公司的不同版本。前者是 Oracle 官方出品免费后者是 Allround Automations 公司的产品付费就像微软 Word 和金山 WPS 的区别。经验总结如果你工作的场景是连接远程数据库那么你完全不需要在本地安装庞大的 Oracle Database 21c XE。一个轻量级的客户端工具足矣。第二关工具选型——SQL Developer vs PL/SQL Developer我把它们的核心区别整理成了下面这个表格方便你对比查看对比维度PL/SQL Developer 14Oracle SQL Developer开发商Allround Automations公司Oracle公司官方出品授权与费用商业软件需要付费购买许可证约$227。你使用的“免安装版”是试用版所以才会提示过期。完全免费是官方提供的免费工具没有试用期限制。运行平台仅支持 Windows操作系统跨平台Windows、macOS、Linux核心定位专注于PL/SQL 开发以专业的编辑和调试体验著称。功能全面的通用数据库开发与管理工具集成对象浏览、SQL开发、数据建模、报表等多种功能。性能表现轻量级启动和运行速度非常快。功能更庞大启动和运行速度相对中等对比分析PL/SQL Developer 14商业软件需要许可证。我用的免安装版是试用版所以会提示还有几天过期。它专注 PL/SQL 开发调试体验优秀但仅支持 Windows。Oracle SQL DeveloperOracle 官方出品完全免费无试用限制。功能全面跨平台Windows/macOS/Linux且自带 JDBC 驱动可以不依赖 Oracle 客户端直接连接远程数据库。直接输入注册码推荐网上有一些流传的 PL/SQL Developer 注册码输入后可以直接激活成正式版省去每月重置的麻烦。如果软件弹出过期提示或者在“帮助” - “关于”里找到注册入口可以试试填入下面这组信息网上有很多成功案例产品代码 (Product Code)ke4tv8t5jtxz493kl8s2nn3t6xgngcmgf3序列号 (Serial Number)264452密码 (Password)xs374ca温馨提示这些注册码属于非官方渠道的破解手段虽然广泛流传且能解决燃眉之急但在严格的公司环境下可能存在合规风险不过既然你同事也在用这个免安装版大概率你们团队内部对这类工具有自己的处理方式。最终选择与体验既然你工作用的是远程数据库那在自己电脑上完全没必要安装 Oracle 21c XE。Oracle XE 是一个完整的本地数据库安装、启动和维护都比较消耗资源。在公司环境下连接远程数据库进行开发是更标准、更高效的做法。✅ 推荐做法只安装客户端工具你只需要一个能连接远程数据库的数据库客户端工具以及 Oracle 的客户端网络组件。数据库客户端工具你已经决定使用的SQL Developer就是一个完美的选择。它本身是纯 Java 应用自带 Oracle 的 JDBC 驱动可以不依赖 Oracle 客户端直接连接远程数据库。Oracle 客户端可选大部分情况下 SQL Developer 直接连接即可。只有当你需要使用某些特定命令行工具如sqlldr、exp/imp或使用特定编程语言的 OCI 驱动时才需要安装Oracle Instant Client轻量级客户端但也不需要安装完整的数据库。 用 SQL Developer 连接远程数据库这是你最主要的工作。只需在新建连接时将“主机名”从localhost改为公司提供的远程数据库 IP 地址或域名“端口”和“服务名”也填写 DBA 分配给你们的实际值即可。配置项本地 (你的电脑)远程 (公司数据库)主机名localhost192.168.1.100(或db.company.com)端口1521可能是1521或其它端口服务名XEPDB1询问 DBA通常是ORCL、PDB等 唯一可能需要本地数据库的场景只有一种情况建议考虑安装本地数据库你需要在完全离线的环境下进行个人学习或测试并且不方便连接公司网络。如果只是为了日常开发工作连接远程数据库是绝对正确且推荐的选择。下载了最新的sqldeveloper-26.2.0.186.2220-x64.zip包含 JDK 17 的版本解压即用非常方便。对于Windows 64位系统强烈推荐下载第一个文件sqldeveloper-26.2.0.186.2220-x64.zip 为什么推荐这个版本下载选项是否包含 Java适合你的原因sqldeveloper-26.2.0.186.2220-x64.zip✅包含 JDK 17下载即用无需额外配置。解压后双击sqldeveloper.exe即可运行对新手最友好。sqldeveloper-26.2.0.186.2220-no-jre ❌不包含 JDK需要你自己安装 JDK 17并配置好系统环境变量否则软件无法启动。如果你电脑里没有配置好的 Java 环境会比较麻烦。官方页面提到如果运行时提示缺少MSVCR100.dll文件说明你的系统可能缺少Microsoft Visual C Redistributable组件。这是 Windows 的常见运行库不是 SQL Developer 的问题。解决方法去微软官网下载安装Visual C Redistributable for Visual Studio 2012 Update 4或更新版本即可一般装x64版本。大多数较新的 Windows 10/11 系统已经自带了这个文件可能根本不会遇到这个问题。第一步下载并安装 SQL Developer下载访问 Oracle 官方下载页面Oracle SQL Developer 下载。根据你的操作系统Windows、macOS 或 Linux选择对应的版本下载。Windows 用户通常下载 “Windows 64-bit with JDK 8 included” 这个版本它内置了 Java无需额外配置。安装SQL Developer 是绿色免安装软件。下载的是一个.zip压缩包将其解压到你电脑上的一个目录即可例如C:\Program Files\SQLDeveloper。启动进入解压后的文件夹找到sqldeveloper.exe文件双击运行即可。第二步创建数据库连接关键步骤启动 SQL Developer 后按以下步骤连接到你的 Oracle 21c XE 数据库。在 SQL Developer 主界面左上角点击绿色的“新建连接”按钮或点击“连接”选项卡中的“”号。在弹出的“新建/选择数据库连接”窗口中填写以下关键信息配置项填写内容说明名称任意名称例如MyXE这只是你在 SQL Developer 中看到的连接别名。类型保持默认的“基本”主机名localhost因为数据库安装在你自己的电脑上。端口1521这是 Oracle 的默认监听端口。服务名XEPDB1这是最重要的一项。Oracle 21c XE 的默认可插拔数据库名称就是XEPDB1。用户名system这是数据库的默认管理员账户。你也可以使用安装时创建的其他普通用户。密码安装数据库时你为system用户设置的密码。填写完成后点击下方的“测试”按钮。如果状态栏显示“成功”说明连接配置正确。点击“保存”然后再点击“连接”即可连接到你的数据库开始编写 SQL 了。补充说明连接类型说明对于本地安装的 XE 版本使用“服务名”并填写XEPDB1是最标准的方式。请勿填写“SID”或将其留空。使用普通用户日常开发建议创建并使用普通用户而不是system。你可以用system登录后执行CREATE USER ... IDENTIFIED BY ...;和GRANT CONNECT, RESOURCE TO ...;语句来创建。SQL Developer 功能它可以管理连接、执行脚本、查看表结构、进行数据导入导出等足以满足开发和测试需求。如果在连接时遇到诸如“网络适配器无法建立连接”或“监听程序未启动”等错误通常是因为 Oracle 的服务未启动。你可以按Win R输入services.msc找到并启动名为OracleServiceXE和OracleXETNSListener这两个服务然后再试一次。 使用步骤总结点击下载sqldeveloper-26.2.0.186.2220-x64.zip。将压缩包解压到你电脑上的任意目录例如C:\Program Files\SQLDeveloper。进入解压后的文件夹双击sqldeveloper.exe启动程序。按照之前提到的连接方法配置你的远程数据库连接即可。SQL Developer 默认使用JDBC 瘦驱动它不依赖Oracle 客户端如 Instant Client或tnsnames.ora文件。因此你需要从tnsnames.ora文件中提取真实连接信息然后填入 SQL Developer 的“基本”连接类型界面。⚠️ 关于“连接类型”的重要说明必须选择“基本”因为 SQL Developer 默认使用 JDBC 瘦驱动直接填写主机名、端口和服务名即可。它不能直接使用你脚本中通过TNS_ADMIN环境变量指定的tnsnames.ora进行命名解析除非你额外配置 JDBC 使用 TNS 名称但这较复杂不推荐。请勿选择“TNS”除非你确定要配置 SQL Developer 使用 Oracle 客户端否则不要选择此选项。一个小插曲我一开始在 SQL Developer 里找不到代码格式化CtrlF7的设置路径。原来在 26.2.0 新版本中格式化配置已经从旧版的Tools → Preferences → Database → SQL Formatter移到了Tools → Preferences → Code Editor → Format → Advanced Format。️ 如何配置和使用进入Preferences-Code Editor-Format-Advanced Format后定制规则你可以在这里调整所有具体的格式化选项比如缩进、关键字大小写、换行规则等。调整时左侧通常会有预览窗口可以实时看到效果。导入/导出配置这里也支持Import/Export功能。如果团队有统一的代码规范可以导入别人分享的formatter.xml配置文件。应用格式化在代码编辑区使用快捷键Ctrl F7或右键选择“Format SQL”即可快速格式化当前代码。.btr文件是PL/SQL 语法高亮规则的配置文件用来让代码显示不同颜色不是之前找的代码格式化调整缩进、换行的配置文件。快捷键失灵确实是功能缺失的典型表现。这很可能是因为 SQL Developer 没有识别到你的 Java 环境导致核心功能模块加载不全。不过你不需要去网上找任何第三方插件。因为这个格式化功能就是软件自带的你只需要手动指定一下 Java 的路径问题一般就能解决。 解决方案手动指定 Java 虚拟机 (JVM)这是解决此类问题最直接、最有效的方法。请按以下步骤操作找到配置文件进入你的 SQL Developer 安装目录即你解压sqldeveloper-26.2.0...-x64.zip的那个文件夹。找到名为sqldeveloper.conf的文件它通常位于sqldeveloper\bin文件夹下。用记事本打开这个文件。添加或修改配置在文件中找到#SetJavaHome这一行通常在文件开头附近。在该行下方新添加一行内容如下请根据你的实际路径修改textSetJavaHome C:\Program Files\Java\jdk-17重要请确保你填写的路径指向一个有效的 JDK 17 或更高版本的安装目录。如果你的电脑尚未安装 JDK 17需要先去 Oracle JDK 下载页面 下载并安装。保存并重启保存sqldeveloper.conf文件。完全关闭 SQL Developer然后重新启动。重新启动后程序应该就能正常加载所有功能了。你可以新建一个 SQL 工作表输入SELECT * FROM dual然后尝试使用快捷键CtrlF7或者点击右键菜单里的“格式 SQL”选项看看是否恢复正常。第三关连接配置——从 TNS 到 JDBC 直连拿到公司提供的连接字符串后我需要在 SQL Developer 中配置连接。关键步骤解析信息从字符串中提取出用户名 、密码和主机。获取关键参数通过查看 PL/SQL Developer 使用的instantclient_11_2\network\admin\tnsnames.ora文件找到了更详细的信息在 SQL Developer 中填写选择“基本”连接类型主机名x端口1521服务名x注意这里填的是SERVICE_NAME而不是 TNS 别名 x关键点服务名是x全小写而不是X。X是tnsnames.ora中定义的网络服务别名只在 TNS 解析中有效。SQL Developer 的 JDBC 驱动直接使用底层的SERVICE_NAME所以必须填x。第四关排错之路——ORA-12541: TNS: 无监听程序本以为配置完成就能顺利连接然而迎接我的是无情的ORA-12541: TNS: 无监听程序错误。无论是 SQL Developer 还是 PL/SQL Developer 都报这个错。分析与解决思路确认问题本质ORA-12541表明我的电脑能到达服务器192.168.13.88但服务器上的 1521 端口没有进程在监听。这不是用户名密码错误而是网络层连接失败了。验证端口连通性在命令提示符中执行telnet 192.168.13.88 1521结果无法连接证实了端口被阻塞或监听未启动。定位问题归属既然端口不通问题就出在数据库服务器端。这不是我能解决的需要联系 DBA 或运维团队。向 DBA 求助时的有效沟通方式我准备了一份清晰的报告发给 DBA问题现象使用 SQL Developer 和 PL/SQL Developer 连接x均报错ORA-12541: TNS: 无监听程序。已做的验证已通过telnet命令确认端口 1521 无法连通排除了本地客户端配置问题。需要协助请帮忙检查服务器上的 Oracle 监听服务lsnrctl status是否正常运行以及服务器防火墙是否放行了 1521 端口对我的 IP 的访问。避坑指南与总结回顾整个过程以下几个“坑”是我最想分享的分清概念数据库引擎≠ 客户端方向盘≠ 示例数据测试燃料。明确你真正需要安装的是什么。优先选用官方免费工具在不确定公司政策前Oracle SQL Developer是连接远程数据库最安全、最便捷的选择。它轻量、免费且无任何试用期限制。TNS 别名 ≠ 服务名在tnsnames.ora中DWHPRPT 是别名真正的服务名是括号里的SERVICE_NAME dwhrpt。在 SQL Developer 的“基本”连接方式中请填写后者。远程连接问题先自查网络遇到ORA-12541或ORA-12514等连接错误第一步应该用telnet测试端口连通性。如果端口不通问题大概率在服务器端及时联系 DBA 是最高效的解决路径。通过这次经历我不仅成功配置了开发环境更深刻地理解了 Oracle 工具链的构成。总结对比PL/SQL Developer 使用一键启动脚本连接 和 SQL Developer的连接方式思考好的用户现在要求用表格来对比PL/SQL Developer一键启动脚本和SQL Developer连接方式。回顾之前的对话用户经历了从概念混淆、工具选型到实际连接配置的完整过程最终确认使用SQL Developer连接远程数据库。用户之前已经明确PL/SQL Developer通过脚本启动而SQL Developer通过界面配置连接。现在需要系统化总结两者差异可能是为了给同事或自己留一份清晰的文档或者加深对两种工具连接机制的理解。深层需求可能是想对比两种工具在连接配置上的本质区别一个依赖本地客户端文件和脚本一个直接通过JDBC。用户可能想理解为什么SQL Developer更简单以及脚本中的参数如NLS_LANG在SQL Developer中如何对应。我需要从脚本机制、配置参数、依赖环境、优缺点等维度进行对比。表格结构要清晰重点突出“本地客户端依赖”和“界面化配置”的核心差异。可以补充一些关键参数的解释比如NLS_LANG的对应设置帮助用户无缝迁移。最后要总结结合用户之前的选择指出SQL Developer更符合其远程连接且不想安装本地客户端的场景。好的我将这两种连接方式的核心差异整理为以下表格方便你对比对比维度PL/SQL Developer一键启动脚本SQL Developer界面配置连接方式通过本地Oracle客户端Instant Client依赖tnsnames.ora文件进行网络服务名解析。使用JDBC瘦驱动无需本地客户端直接在界面填写主机名、端口和服务名。配置入口批处理脚本.bat通过环境变量指定客户端路径、TNS_ADMIN和NLS_LANG。图形界面在“新建连接”窗口中填写连接参数。核心参数•TNS_ADMIN指向tnsnames.ora所在目录•NLS_LANG设定字符集和语言区域•InstantClient指定Instant Client路径•主机名、端口、服务名基本连接• 或TNS别名需配置本地命名但一般不推荐依赖环境必须• Instant Client含网络配置文件•tnsnames.ora中已定义目标服务无需本地客户端或tnsnames.ora文件推荐基本连接方式字符集设置通过脚本中的NLS_LANG变量控制例如SIMPLIFIED CHINESE_CHINA.AL32UTF8在连接属性中单独设置“编码”或通过启动参数-Dfile.encoding设定。启动流程双击.bat脚本 → 设置环境变量 → 启动PL/SQL Developer主程序。双击sqldeveloper.exe→ 在界面中点击“新建连接” → 输入信息并测试。常见报错•ORA-12154: TNS: 无法解析指定的连接标识符tnsnames.ora配置错误• 乱码问题NLS_LANG设置不对•ORA-12541: TNS: 无监听程序网络或端口不通•ORA-01017: 用户名/密码无效认证失败优点• 一次配置多工具共享如SQL*Plus• 对老旧系统兼容性好• 免安装、免配置开箱即用• 界面友好便于排查连接问题缺点• 依赖本地客户端配置复杂• 环境变量错误容易导致乱码或连接失败• JDBC驱动可能与极老旧数据库存在兼容性问题 针对你当前的场景建议既然你的PL/SQL Developer脚本中已经包含了完整的Instant Client路径和tnsnames.ora配置而SQL Developer则完全不需要这些本地依赖直接填IP、端口和服务名即可。如果你们团队后续要统一开发工具SQL Developer无疑是更轻量、更标准的选择也方便新成员快速上手。如果你想在SQL Developer中模拟PL/SQL Developer的字符集设置可以在sqldeveloper.conf文件中添加AddVMOption -Dfile.encodingUTF-8默认通常已适配或者在连接属性中指定“Unicode”编码。通过本地Oracle客户端Instant Client依赖tnsnames.ora文件进行网络服务名解析。是什么意思好像没有本地Oracle客户端或者怎么查有没有好的用户这次问的是“通过本地Oracle客户端Instant Client依赖tnsnames.ora文件进行网络服务名解析”是什么意思以及怎么查有没有本地Oracle客户端。嗯回顾之前的对话用户一直在折腾Oracle连接工具从PL/SQL Developer的免安装版到SQL Developer中间还搞混过概念。用户手里有PL/SQL Developer的一键启动脚本里面确实指定了Instant Client路径但用户可能对这套机制的原理并不清楚只是能用。用户现在问这个问题深层需求其实是想搞清楚我电脑上到底有没有这个所谓的“客户端”它放在哪我怎么确认它是不是在起作用因为之前连接远程数据库出过ORA-12541错误用户可能怀疑是不是本地客户端配置有问题或者想弄明白为什么SQL Developer不用这些也能连。用户身份很可能是公司里的开发人员刚接触Oracle生态不久对网络解析、驱动这些底层机制不太熟悉。他需要的不只是概念解释更是可操作的验证步骤。那么我的回答需要先清晰解释“通过本地Oracle客户端解析”是什么意思——就是用本地的Net8库和tnsnames.ora文件把“缩写名”翻译成“IP端口服务名”。然后分步骤告诉用户怎么查1看PL/SQL启动脚本里的路径2检查那个路径下有没有tnsnames.ora文件3再看看有没有其他Oracle客户端如系统服务。最后再点明SQL Developer不需要这些因为它是用JDBC直连的。这样既能解答用户的疑问又能帮他理清之前连接失败的可能原因可能是tnsnames.ora配置问题也可能是服务器端问题同时巩固他对两种工具工作原理的理解。“通过本地 Oracle 客户端Instant Client依赖tnsnames.ora文件进行网络服务名解析”这句话的意思是你的电脑上有一个轻量级的 Oracle 网络组件Instant Client它负责把你在 PL/SQL Developer 里输入的“缩写名”比如DWHPRPT翻译成数据库服务器能识别的“具体地址”IP、端口、服务名然后再去连接。下面我分步骤解释并告诉你如何检查本地是否有这个客户端。 这句话拆解说明术语通俗解释本地 Oracle 客户端 (Instant Client)它是一组由 Oracle 提供的网络通信库文件如oci.dll,oraociei11.dll等安装在你的电脑上。它的作用是让你的应用程序如 PL/SQL Developer能和远程数据库服务器进行“对话”。tnsnames.ora 文件这是一个文本配置文件里面维护了一个“名字 ↔ 地址”的对照表。就像电话簿存着“张三 → 138xxxx”一样它存着例如“DWHPRPT→192.168.13.88:1521/dwhrpt”这样的映射。网络服务名解析当你在 PL/SQL Developer 的连接框里输入DWHPRPT时程序会去读取tnsnames.ora文件找到DWHPRPT这个条目提取出里面的 IP、端口和服务名然后用这些真实地址去发起网络连接。️ 如何检查你的电脑上是否有这个“本地客户端”你可以用下面几种方法快速确认方法一查看 PL/SQL Developer 的启动脚本最直接你之前发过你的启动脚本textset TNS_ADMIN%cd%\instantclient_11_2\network\admin start plsqldev.exe InstantClientinstantclient_11_2结论从这个脚本可以明确看出你的PL/SQL Developer 确实在使用一个名为instantclient_11_2的本地客户端并且它的tnsnames.ora文件就位于该目录下的network\admin子文件夹中。验证方法进入你的 PL/SQL Developer 安装目录找到instantclient_11_2文件夹里面通常会有oci.dll、sqlplus.exe等文件这就是客户端的核心文件。方法二检查系统环境变量全局配置按Win R输入sysdm.cpl回车切换到“高级” → “环境变量”。在“系统变量”或“用户变量”中查找是否有名为TNS_ADMIN的变量。如果有它的值指向的就是tnsnames.ora文件所在的目录。注意你的脚本是通过set TNS_ADMIN...临时设置的所以它只对当前启动的 PL/SQL Developer 进程生效不会出现在系统的全局环境变量里。方法三在命令行中测试打开命令提示符CMD进入你的instantclient_11_2目录执行textsqlplus /nolog如果能进入 SQL*Plus 界面显示SQL提示符说明 Instant Client 是可用的。✅ 总结你有本地 Oracle 客户端就是 PL/SQL Developer 自带的instantclient_11_2文件夹。tnsnames.ora文件就放在instantclient_11_2\network\admin里你之前也查看过它的内容。这种方式的优点是一次配置多个工具如 SQL*Plus都能共用缺点是需要维护这个配置文件且环境变量设置不当容易出错。与之对比SQL Developer就不需要这个本地客户端它直接用 JDBC 驱动解析你填写的 IP、端口和服务名所以配置更简单、更独立。如果你在日常工作中更习惯填 IP 直连那么 SQL Developer 的方式会更加便捷。