简介:SQL Developer 21.4.3 正式版是 Oracle 官方发布的免费数据库开发工具,面向数据库管理员、开发人员及数据分析师,无需安装 Oracle 客户端即可直接连接和管理多种数据库。该版本为 x64 位压缩包,整体大小 435.95MB,内含 2512 个文件,涵盖 jar 程序库、xml 配置文件、dll 动态链接库及 sql 脚本等类型,组件完整且目录结构清晰。资源已通过 MD5 与 SHA1 校验,确保原版无篡改。已有 816 人学习下载,适合追求稳定高效、希望摆脱 PL/SQL 授权困扰的用户使用。解压后即可运行,大幅降低环境配置成本,能够显著提升日常数据库开发与运维效率。 sqldeveloper-21.4.3.063.0100-x64 这个文件名,玩过 Oracle 数据库的朋友应该一眼就能认出来,这是 Oracle SQL Developer 的 21.4.3 版本安装包,x64 是 64 位系统的版本。作为日常要和 Oracle、MySQL 打交道的开发或 DBA,SQL Developer 几乎是我每台机器上必装的一个工具。它免费、跨平台,从写 SQL 到跑执行计划、做数据导入导出,甚至把其他数据库迁移到 Oracle,都能在一个界面里完成。
这篇博文我就围绕这个 21.4.3 x64 版,结合我自己的实际使用经验,把从下载安装到日常高频操作、再到遇到过的各种坑,完整梳理一遍。内容面向刚接触 SQL Developer 的新手,也适合想把这工具用得更顺手的老手。看完你至少能少走几次弯路。
1. 安装之前:先把文件名的信息榨干
1.1 版本号到底说了什么
sqldeveloper-21.4.3.063.0100 这个字符串不是随便起的,Oracle 的版本号体系里,21 代表主版本,对应的是 2021 年发布的功能版本。细心的朋友会发现 21.4.3 后面还有一截 063.0100,这是构建号和内部修订号,实际使用中不需要记它,但如果你遇到某个 Bug,向 Oracle 提工单时需要完整提供这个版本号,所以别随便删掉安装包文件名里的部分内容。
21.4.3 相比早期版本,我在实际体验中感受比较明显的是:对高分辨率屏幕的支持更好,4K 屏下界面缩放不再糊成一团;自动补全和代码模板更智能;对 Oracle 21c 数据库的新特性支持比较完整,比如区块链表、SQL 宏这些。日常写 PL/SQL、调存储过程,稳定性也比 19.x 和 20.x 时代强不少。
注意:21.4.3 之后的版本命名方式变了,Oracle 把 SQL Developer 改成了版本号 23.x、24.x 这样的命名。如果你看到 sqldeveloper-23.1.0 这类文件,不要觉得是跳版本,只是 Oracle 改了版本命名规则。
1.2 运行环境:不只是装了 JDK 就行
x64 结尾说明这是 64 位编译版本,操作系统需要 64 位的 Windows、Linux 或 macOS。Windows 上我建议至少 Windows 10 1809 以上,Win7 虽然官方说支持,但新版 JDK 在 Win7 上兼容性问题比较多,不推荐。
SQL Developer 本身是 Java 写的桌面应用,所以必须有 JDK 才能跑。这里有个关键点:21.4.3 版本要求 JDK 11 或 JDK 8。我自己测试过,JDK 17 也能启动,但界面偶尔会出现字体渲染异常,不推荐在生产环境这么干。
建议直接用 JDK 11,原因有几个:
- JDK 8 太老,对 21c 数据库的一些新特性支持和 SSL/TLS 加密算法支持不完整
- JDK 11 是 LTS 版本,稳定
- 官方文档里明确支持 JDK 11,后续排查问题不会被人一句"你环境不对"打发
Linux 环境注意别用 OpenJ9 之类的 JVM,我用过 IBM 的 OpenJ9 跑 SQL Developer,启动没问题,但连接数据库时偶尔报奇怪的握手错误,换成 OpenJDK HotSpot 就好了。
2. 安装与首次启动:别在第一步就踩坑
2.1 下载和安装其实是解压
SQL Developer 的 Windows 版本下载下来通常是一个 zip 包,不是 exe 安装程序。这一点很多新手会困惑,不知道怎么"安装"。其实它本身就是绿色软件,解压到某个目录就能用。
我的习惯是解压到D:\oracle\sqldeveloper这类不含空格和中文的路径下。路径里有中文或空格,容易在某些 JDBC 连接和导入导出场景下触发奇怪的文件路径问题,我踩过这个坑,后来一律用纯英文路径。
解压完目录结构大概是这样:
sqldeveloper/主程序目录sqldeveloper/bin/启动脚本,Windows 下是sqldeveloper.exe和sqldeveloper64w.exeide/底层 NetBeans 平台文件jdbc/自带 JDBC 驱动
不要手动去改目录里的 jar 包或配置文件,除非你知道自己在做什么。这个目录结构是 NetBeans 平台的标准布局,乱动会导致启动失败。
2.2 配置 JDK 路径
解压后直接双击sqldeveloper64w.exe启动,第一次运行会弹出对话框让你选择 Java 路径。这里要注意:它不一定能自动识别你系统装的 JDK,特别是你装了多个 JDK 版本的时候。
为了避免每次启动都问,可以在配置文件里写死 JDK 路径。配置文件在sqldeveloper/sqldeveloper/bin/sqldeveloper.conf,用文本编辑器打开,找到SetJavaHome这一行,改成你的 JDK 实际路径,比如:
SetJavaHome D:\Java\jdk-11.0.21改完保存,重启 SQL Developer。以后再也不会弹窗问 Java 路径了。
如果打开配置文件发现没有SetJavaHome这行,可以直接在文件末尾加上,效果一样。配置里还有一个AddVMOption的参数,-Xmx 内存相关的写法也会用到这里,我放到后面调优部分细说。
2.3 首次启动后的基础设置
第一次启动会进入欢迎页,问你要不要导入之前的偏好设置。如果是全新安装选"No"就行。启动后建议第一时间做两个设置:
第一,检查界面语言。21.4.3 默认会根据系统语言自动切换,如果你的系统是中文,SQL Developer 可能显示中文界面。有的人喜欢中文,但我是建议至少保持菜单是英文,为什么?因为你在网上搜资料、查官方文档时,菜单项、报错信息都是英文,如果你的界面是中文,对应起来会非常痛苦。设置入口在Tools->Preferences->Environment->Language。
第二,检查数据库连接驱动。默认情况下 SQL Developer 自带 Oracle 驱动,可以直接连 Oracle 数据库。但要连 MySQL、PostgreSQL 这种非 Oracle 数据库,需要额外装驱动。虽然 21.4.3 在Preferences->Database->Third Party JDBC Drivers里有引导界面,但实测连接 MySQL 8 还是会遇到时区、加密插件等问题,建议直接用 MySQL Connector/J 8.x 版本,不要用老旧的 5.x。
3. 连接数据库与日常开发实操
3.1 创建连接:三种方式怎么选
SQL Developer 左上角有一个绿色的加号图标,点开就是新建连接界面。这里很多新人会卡住,因为不知道该填什么。
连接类型有三种,我逐个说:
TNS 方式:适合有 tnsnames.ora 文件的环境,连接名直接下拉选择即可。公司里如果有专门的 DBA 维护了 TNS 文件,用这种方式最省事。但要注意,SQL Developer 默认读取的 TNS 文件路径需要手动指定,在Preferences->Database->Advanced里设置TNS Names File的完整路径。
Basic 方式:最常用,也是我推荐新手使用的方式。填主机名、端口、SID 或服务名。这里有个经典坑:Oracle 12c 之后的数据库默认用的是服务名(Service Name),不是 SID。很多新手在 SID 里填了服务名,连接报ORA-12505: TNS:listener does not currently know of SID given in connect descriptor。连 12c 以上版本,直接选"服务名",填ORCLPDB1或实际的服务名,别死磕 SID。
Custom JDBC 方式:高级玩家用的,自己写 JDBC URL。适合需要通过代理、特殊协议连接的场景。日常用不上,了解一下即可。
连接界面的"角色"字段,默认是 default。如果要用 SYSDBA 权限登录,需要在这里选 SYSDBA 或 SYSOPER。否则你哪怕用户名是 sys,连接上之后也不是管理员权限。
提示:连接失败时,第一个要排查的是监听状态。在命令行执行
lsnrctl status看监听是否启动,以及是否注册了对应服务。很多连接错误其实不是 SQL Developer 的问题,是监听没起来。
3.2 SQL 工作台的使用技巧
连上数据库后,点连接名左侧的箭头展开,会看到表、视图、存储过程等对象节点。双击表名可以打开表数据编辑界面,但说实话这个界面在数据量大时很卡,我只用来快速查看小表。
真正日常用的是右键连接名 ->打开 SQL 工作表,或者快捷键Alt+F10。打开的这个 SQL Worksheet 是写 SQL 的主战场。几个高频快捷键:
Ctrl+Enter:执行当前语句F5:执行整个脚本F10:查看执行计划Ctrl+F7:自动格式化 SQL
提到格式化,SQL Developer 的自动格式化功能是我用过最顺手的一档。写了一段乱糟糟的 SQL,按Ctrl+F7就能把缩进、大小写、换行捋顺。默认风格可能不太合你胃口,可以在工具->首选项->代码编辑器->格式化程序里调整关键字大小写、缩进宽度等细节。我习惯把关键字调成大写,缩进 3 空格,执行计划用DBMS_XPLAN风格输出,写复杂报表 SQL 时特别舒服。
查看执行计划这块,F10 走的是解释计划,但F10显示的是在 SQL Developer 会话里执行 EXPLAIN PLAN 的结果,对于复杂查询,我通常还会用SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(NULL,NULL,'ALLSTATS LAST'))这种真实执行统计的方式来看,这样能看出实际行数和预估行数的差异,排查索引失效问题更直接。
3.3 数据导出与导入(常见需求)
日常工作中最频繁的需求之一:把查询结果导出成 Excel 或 CSV。SQL Developer 的做法是:
- 在 SQL Worksheet 里执行查询,得到结果集
- 右键结果集区域,选择"导出"
- 格式选 CSV、Excel(xlsx)或 XML
- 指定导出路径和文件名
这里有个容易忽略的细节:导出 Excel 时如果数据量超过 6 万行,会提示需要选择 XLSX 格式,因为老式 XLS 格式上限是 65536 行。另外,导出 CSV 时如果字段里有中文或特殊字符,编码建议选 UTF-8,否则用 Excel 打开可能乱码。
如果是需要把整张表的结构和数据都搬到另一个库,可以用"工具" -> "数据库导出"向导。它可以生成 DDL 脚本并导出数据。但说实话,如果只是小表迁移,我更推荐直接用CREATE TABLE AS SELECT这种 SQL 方式,简单直接。如果是几十万行以上的大表,用数据库自带的 Data Pump(expdp/impdp)效率远高于 SQL Developer 的导出向导。
还有一个我很常用的功能:从其他数据库迁移到 Oracle。SQL Developer 自带迁移工作台,支持从 MySQL、SQL Server、Access 等迁移到 Oracle。实测过从 MySQL 8 迁移一张带自增主键、索引、外键的表,整个流程非常顺滑,官方迁移向导会帮你把AUTO_INCREMENT转成 Oracle 的 Identity 列,把DATETIME转成TIMESTAMP,基本不用手工改 DDL。不过迁移前最好先对比一下字段类型映射,有些边缘类型(如TINYINT(1),可能被识别为NUMBER,而不是BOOLEAN)需要手动修正。
4. 常见问题排查与调优
4.1 启动慢或卡死
很多用户反映 21.4.3 启动特别慢,双击图标后要等半分钟甚至更久。这个问题我排查过多次,核心原因通常是两个:
一是机器上 JDK 版本太老,导致 JVM 启动慢。换 JDK 11 之后启动速度有明显改善。
二是内存配置不合理。SQL Developer 默认堆内存比较保守,数据量大、打开多个连接时容易频繁 GC,表现为界面卡顿。可以手动改大内存,配置文件还是刚才的sqldeveloper.conf,添加或修改:
AddVMOption -Xms256m AddVMOption -Xmx2g-Xms是初始内存,-Xmx是最大内存。机器内存 8G 以下建议-Xmx1g,16G 内存建议直接给到2g。改完重启生效。别一次给太大,比如-Xmx8g,反而会因为 JVM 预留过多内存导致系统其他程序变慢。
4.2 中文乱码
SQL Developer 显示中文乱码,主要发生在三种场景:数据库字符集不一致、查询结果集乱码、导入导出文件乱码。
查询结果乱码最常见的原因是客户端字符集和数据库字符集不匹配。命令行下可以用SELECT USERENV('LANGUAGE') FROM DUAL;查看会话语言和字符集。SQL Developer 里通常不需要手动设置 NLS_LANG,它会自动读取 -Duser.language 参数。但如果你的系统默认编码不是 UTF-8,比如 Windows 中文版 + 老版本 SQL Developer,就会乱码。
解决办法是在sqldeveloper.conf里加上:
AddVMOption -Dfile.encoding=UTF-8 AddVMOption -Duser.language=zh AddVMOption -Duser.country=CN注意这三个参数要一起设,只设 file.encoding 可能导致界面菜单正常但工具栏文字显示乱码。改完重启。如果你连的是 AL32UTF8 字符集的库,这套配置基本能解决 99% 的乱码问题。
4.3 连接报错速查
我整理了自己遇到过的几个高频报错和解决办法:
| 错误码 | 错误信息 | 常见原因 | 解决办法 |
|---|---|---|---|
| ORA-12541 | TNS:no listener | 监听没启动或端口不对 | 检查监听状态,确认端口是否是 1521 |
| ORA-12514 | listener does not currently know of service | SID/服务名填错 | 确认你连的是 SID 还是服务名,12c 后多租户库要填 PDB 的服务名 |
| ORA-01017 | invalid username/password | 用户名或密码错误;角色选错 | 确认密码,确认角色是否是 default 或 SYSDBA |
| ORA-28040 | No matching authentication protocol | 客户端和服务端加密协议不匹配 | 21.4.3 连老版本 11g 数据库时容易出现,需要调整服务端的 SQLNET.ALLOWED_LOGON_VERSION |
| Socket read timed out | 网络不通或防火墙拦截 | 检查网络连通性,telnet 测试端口 |
其中 ORA-28040 现在越来越常见,因为新版 SQL Developer 默认使用新版本加密协议,而 11g 或老 12.1 默认协议较旧。这种时候通常需要 DBA 在数据库服务器上修改sqlnet.ora,加上SQLNET.ALLOWED_LOGON_VERSION_CLIENT=8,然后重启监听。作为客户端这边,暂时没有特别干净的解决办法,建议遇到这种问题直接找 DBA 协调,别自己乱改客户端参数。
4.4 连接多套环境频繁切换的体验优化
如果你的工作涉及多套环境(开发库、测试库、生产库),每个库的账号密码都不一样,SQL Developer 的"命名连接"保存功能就很有用。在连接界面保存密码勾选上,下次打开直接双击连接就能进去。
但我个人的一个习惯是:生产库连接从不在 SQL Developer 里保存密码,甚至连接名都写得很明确,比如PROD_CRM_READONLY。因为在团队协作环境里,如果别人用了你的电脑,而你保存了生产库密码,这是很大的安全隐患。权限上能用只读账号就不用 DBA 账号,这是底线。
另外一个需要留意的点:SQL Developer 会把连接信息保存在用户目录下,路径大概是C:\Users\你的用户名\AppData\Roaming\SQL Developer或~/.sqldeveloper。如果你想让同事用自己的连接配置,直接把整个文件夹拷过去覆盖即可。但这里有个后续版本兼容问题,21.4.3 的连接配置如果被新版本(比如 23.x)打开过,再拿回旧版本读取时偶尔会闪退。所以不要跨大版本覆盖连接配置。
5. 实际使用中的一点心得
21.4.3 x64 这个版本我用了大概一年半,总的来说是 SQL Developer 进入 21 系之后比较稳定的大版本,日常写 SQL、调存储过程、做数据对比,没出过大问题。有一些细节上的使用习惯,我觉得很值得分享。
第一,善用"查找数据库对象"功能,快捷键是Ctrl+Shift+D(或Ctrl+N,不同版本略有差异),可以直接搜索表名、视图名、包名,不用手动展开树形目录。表多的时候这个功能能省很多时间。
第二,把常用脚本存成"SQL 片段"。工具->首选项->数据库->SQL 片段,可以把SELECT * FROM table WHERE rownum<=100这类高频语句存进去,下次输入简写自动补全。我用得最多的一个片段就是查表结构SELECT * FROM all_tab_columns WHERE table_name = :tab,配合绑定变量提示,效率很高。
第三,如果你经常要导数据到 Excel 给业务同事,建议把导出的格式固定为 xlsx,并且导出的列头用别名标记好中文含义。SQL Developer 支持在 SQL 里用AS "字段名"指定列头,导出时中文列头能正确写入 Excel,省去业务同事再手工改列名的麻烦。
其实工具这东西没有绝对最好的,只有顺不顺手。SQL Developer 的优势是免费、官方持续更新、对 Oracle 系功能支持最完整。如果你主力数据库就是 Oracle,它基本是你最省心的选择。希望这篇基于 sqldeveloper-21.4.3.063.0100-x64 的实战分享,能帮你把这个工具真正用起来,少踩我当年踩过的那些坑。
本文还有配套的精品资源,点击获取