Oracle 客户端深度指南:SQL Developer 与 PL/SQL Developer 全面安装使用教程
作为拥有10年Oracle开发经验的资深工程师,我将为您提供一份专业级的客户端工具指南。无论您是初学者还是进阶开发者,本教程都将帮助您高效使用Oracle生态中最强大的两个工具。
一、工具对比与选择建议
| 特性 | SQL Developer | PL/SQL Developer |
|---|---|---|
| 开发商 | Oracle官方 | Allround Automations |
| 许可证 | 免费 | 商业版($227) |
| 安装大小 | 约300MB | 约50MB |
| 性能表现 | 中等 | 极快 |
| 学习曲线 | 平缓 | 陡峭 |
| 调试能力 | 基础 | 专业级 |
| 数据建模 | 内置 | 需插件 |
| 适用场景 | 日常开发/管理 | 企业级开发/调试 |
选择建议:
- 初学者/轻量使用 → SQL Developer
- DBA/专业开发者 → PL/SQL Developer
- 最佳实践:同时安装,根据任务切换使用
二、SQL Developer 安装与配置
步骤1:环境准备
安装Java:
- 下载JDK 17+:Oracle官网
- 配置环境变量:
JAVA_HOME=C:\Program Files\Java\jdk-17
Path=%JAVA_HOME%\bin
下载安装包:
- 访问 Oracle SQL Developer下载页
- 选择最新版本(当前推荐23.1)
步骤2:安装过程
# Windows 安装
1. 解压下载的.zip文件到目标目录(如 D:\SQLDeveloper)
2. 运行 sqldeveloper.exe
3. 首次启动提示选择Java路径:浏览到JDK安装目录
# macOS/Linux 安装
unzip sqldeveloper-23.1.0.zip -d ~/Applications
cd ~/Applications/sqldeveloper
./sqldeveloper.sh
步骤3:创建数据库连接
- 点击"新建连接"图标(绿色加号)
- 填写连接信息:
连接名: PROD_DB
用户名: system
密码: ******
主机名: db-server.company.com
端口: 1521
服务名: ORCLPDB
- 高级选项:
- 角色:SYSDBA(管理员)/ Normal(普通用户)
- 保存密码:启用安全存储
- 测试连接:确认状态为"成功"
步骤4:界面配置优化
主题设置:
- 工具 → 首选项 → 代码编辑器 → 字体(推荐Consolas 12pt)
- 外观 → 主题 → Dark(护眼模式)
快捷键自定义:
常用操作:
Ctrl+Enter → 执行语句
Ctrl+/ → 注释代码
F4 → 描述对象结构
三、SQL Developer 核心功能实战
1. 数据库对象管理
A[连接数据库] --> B[表]
A --> C[视图]
A --> D[存储过程]
A --> E[函数]
A --> F[包]
- 表操作示例:
- 展开"表"节点 → 右键"新建表"
- 设计表结构:
CREATE TABLE employees (
id NUMBER PRIMARY KEY,
name VARCHAR2(50) NOT NULL,
salary NUMBER(10,2),
hire_date DATE DEFAULT SYSDATE
);
- 生成DDL:右键表 → SQL → DDL
2. SQL开发与优化
-- 示例:分析查询性能
EXPLAIN PLAN FOR
SELECT d.department_name, AVG(e.salary)
FROM employees e
JOIN departments d ON e.department_id = d.department_id
GROUP BY d.department_name;
-- 查看执行计划
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
执行计划关键指标:
- COST:Oracle预估的执行成本
- CARDINALITY:返回行数预估
- ACCESS_PREDICATES:索引使用情况
3. 数据导入导出
导出数据到CSV:
- 右键表 → 导出
- 格式选择CSV
- 设置分隔符(默认逗号)
- 指定输出路径
导入Excel数据:
- 工具 → 数据库复制 → 复制到数据库
- 选择Excel文件
- 映射列到目标表
- 设置提交频率(每1000行)
4. 版本控制集成
- 工具 → 版本控制 → 注册项目
- 选择Git/SVN工作目录
- 提交变更:
# 自动检测SQL文件变更
git add src/*.sql
git commit -m "添加员工表结构"
四、PL/SQL Developer 专业级配置
安装步骤(Windows)
获取安装包:
- 官网下载:https://www.allroundautomations.com/
- 试用版(30天)或购买许可证
运行安装:
双击 plsqldev1400x64.exe
接受协议 → 选择安装路径 → 完成
配置Oracle客户端:
- 下载 Oracle Instant Client
- 解压到
C:\instantclient_19_15 - 配置环境变量:
PATH=C:\instantclient_19_15;%PATH%
TNS_ADMIN=C:\instantclient_19_15\network\admin
- 创建
tnsnames.ora:ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = db-server)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCLPDB)
)
)
连接配置
- 启动PL/SQL Developer
- 登录窗口:
Username: system
Password: ******
Database: ORCL # 匹配tnsnames.ora配置
Connect as: SYSDBA
- 保存连接:勾选"Save Password"
界面优化设置
主题与布局:
- 工具 → 首选项 → 用户界面 → 选择"Modern Dark"
- 窗口 → 保存布局 → 命名"开发模式"
编辑器增强:
[首选项 → 编辑器]
字体: Fira Code 12pt
启用行号: 是
自动完成: 延迟200ms
五、PL/SQL Developer 高级功能
1. 专业调试技巧
-- 设置断点
CREATE OR REPLACE PROCEDURE calculate_bonus IS
BEGIN
FOR emp IN (SELECT * FROM employees) LOOP
dbms_output.put_line(emp.name); -- 在此行左侧点击设置断点
UPDATE employees SET bonus = salary * 0.1 WHERE id = emp.id;
END LOOP;
END;
调试操作:
- 右键过程 → 测试 → 添加调试信息
- 点击"开始调试器"(甲虫图标)
- 使用控制台:
- 单步进入(F7)
- 继续(F8)
- 查看变量:添加emp.name到监视窗口
2. 性能优化工具
会话浏览器:
- 工具 → 会话
- 查看锁定对象/Kill长事务
PL/SQL分析器:
-- 启用分析
ALTER SESSION SET PLSQL_OPTIMIZE_LEVEL = 0;
EXEC DBMS_PROFILER.START_PROFILER('BONUS_CALC');
CALL calculate_bonus;
EXEC DBMS_PROFILER.STOP_PROFILER;
结果:视图 → Profiler → 按执行时间排序
3. 模板与代码库
自定义模板:
- 文件 → 新建 → 模板
- 创建常用代码片段:
-- 模板名: sel_table
SELECT * FROM ${table} WHERE rownum <= 100;
- 使用快捷键:
sel_table+ Ctrl+Space
共享代码库:
- 工具 → 首选项 → 文件 → 设置库目录
- 团队共享网络路径:
\\nas\dev\plsql_lib - 调用共享代码:
@//get_employee_by_id.sql
六、对比场景实战
场景1:批量数据导入
| 工具 | 操作步骤 | 耗时(10万行) |
|---|---|---|
| SQL Developer | 向导式导入 | 2分35秒 |
| PL/SQL Developer | SQL*Loader脚本 | 48秒 |
PL/SQL高效脚本:
-- 创建控制文件
OPTIONS (SKIP=1, ERRORS=1000)
LOAD DATA
INFILE 'employees.csv'
INTO TABLE employees
FIELDS TERMINATED BY ','
TRAILING NULLCOLS
(id, name, salary, hire_date "YYYY-MM-DD")
场景2:存储过程调试
A[设置断点] --> B[启动调试]
B --> C{SQL Developer?}
C -->|是| D[基础单步调试]
C -->|否| E[PL/SQL专业调试]
E --> F[变量监视]
E --> G[调用堆栈分析]
E --> H[性能热点定位]
七、常见问题解决方案
问题1:连接时报ORA-12154
原因:TNS解析失败
解决:
- 检查
tnsnames.ora位置(echo %TNS_ADMIN%) - 验证配置别名是否匹配
- 使用完整连接串测试:
(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCLPDB)))
问题2:PL/SQL Developer中文乱码
修复步骤:
- 添加环境变量:
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
- 注册表修改:
[HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE]
"NLS_LANG"="AMERICAN_AMERICA.AL32UTF8"
问题3:调试权限不足
授权命令:
GRANT DEBUG CONNECT SESSION TO developer;
GRANT DEBUG ANY PROCEDURE TO developer;
EXEC DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL('acl_name.xml', 'developer');
八、高级技巧与最佳实践
1. 自动化部署脚本
# SQL Developer命令行模式
sqldeveloper /nolog @deploy_script.sql
# deploy_script.sql内容
conn system/password@ORCL
@schema/create_tables.sql
@data/load_reference_data.sql
exit
2. 性能监控仪表板
-- PL/SQL自定义监控面板
BEGIN
add_monitor('CPU Usage',
'SELECT value FROM v$sysstat WHERE name = ''CPU used by this session''');
add_monitor('Active Sessions',
'SELECT COUNT(*) FROM v$session WHERE status = ''ACTIVE''');
END;
3. 安全加固建议
- 连接加密:
- 配置sqlnet.ora:
SQLNET.ENCRYPTION_SERVER = REQUIRED
SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
- 配置sqlnet.ora:
- 审计敏感操作:
CREATE AUDIT POLICY ddl_policy
ACTIONS CREATE TABLE, DROP TABLE; AUDIT POLICY ddl_policy BY developer;
九、学习资源推荐
官方文档:
进阶书籍:
- 《Oracle PL/SQL Programming》(Steven Feuerstein)
- 《SQL Developer for Oracle DBAs》(Robert Freeman)
社区支持:
- Oracle官方论坛:community.oracle.com
- Stack Overflow #oracle标签
工程师建议:每周投入2小时专项练习,两个月内可达到专业水平。重点关注:执行计划分析、PL/SQL调试技巧、批量数据处理。
通过本教程,您已掌握Oracle两大核心工具的专业级使用方法。立即应用这些技巧,您将体验到开发效率的质的飞跃!遇到具体技术难题时,欢迎在评论区交流讨论。
Oracle 客户端深度指南:SQL Developer 与 PL/SQL Developer 全面安装使用教程的更多相关文章
- Oracle SQL Developer,Oracle 开发工具之toad、SQL Developer、PL/SQL Developer等比较
参考: oracle 的几个开发工具比较 因Oracle几乎是中大型商业企业数据的首选,所以比较一下常用与Oracle的工具. Oracle SQL Developer 免费,一般开发使用足矣,常用. ...
- sql plus 和 pl/sql无法连接远程oracle数据库
前言:安装完oracle客户端后,可能会出现sql plus 和 pl/sql无法连接远程oracle数据库的情况,可能是以下原因: 针对sql plus连接不上: 1 可能原因:之前安装过oracl ...
- Oracle实战笔记(第六天)之PL/SQL基础
一.PL/SQL介绍 1.概念 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语 ...
- oracle学习笔记(十五) PL/SQL语法结构以及使用
PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言. PL/SQL 是对 SQL 的扩展. 支持多种数据类型,如大对象和 ...
- 在SQL中使用PL/SQL函数存在的问题
-----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...
- SQL语句、PL/SQL块和SQL*Plus命令之间的区别
SQL语句.PL/SQL块和SQL*Plus命令之间的区别 原文链接:https://blog.csdn.net/liuzhushiqiang/article/details/12320941 在 ...
- PLSQL Developer概念学习系列之登录连接Oracle时出现(没有登录) -PL / SQL Developer:ORA - 12541: TNS :无建听程序的错误解决办法(图文详解)
不多说,直接上干货! 前期博客 PLSQL Developer概念学习系列之如何正确登录连接上Oracle(图文详解) 如用scott.scott_password进行登录,orcl是全局数据库 ...
- Oracle 11g系列:SQL Plus与PL/SQL
SQL Plus是Oracle提供的一种用户接口,是数据库与用户之间进行交互的工具. PL/SQL是Oracle的过程化编程语言. 1.登录SQL Plus 利用Windows的[开始]|[运行]命令 ...
- oracle 11g 64w 用32位的pl/sql
1. 下载64位Oracle,解压两文件,解压完成后将文件合并,安装: 2. 下载PL/SQL,安装: 3. 下载instantclient-basic-win32-11.2.0.1.0.zip ...
- oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)
LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...
随机推荐
- Windows Server评估版/正式版/数据中心版的来源及转换
评估版: 从微软评估中心下载的版本,相当于微软提供的试用版,可免费使用一段时间.但该版本无法使用 KMS授权或 MAS 永久授权进行激活. 正式版/数据中心版: 从微软许可证中心下载的版本已标识了GL ...
- 【虚拟机】VirtualBox设置共享文件夹
VirtualBox设置共享文件夹 1.选中你要设置的虚拟机,点设置 2.共享文件夹,点右边的加号,设置一个共享文件夹路径,选择其他, 3.选一个你知道的位置,比如我的在E盘的共享文件夹下面 4.选好 ...
- restful 服务器一个问题,看ChatGPT的威力 (续)
资料很多,但是真正能经得住7X24运行的还真不容易.说穿了就是你的程序不够健壮. 玩数据处理的,也就是:数据库连接 → 查询 → 拉数据 → 生成结果 → 释放连接 → 返回数据 .可是看下面: FD ...
- Python合成多个视频为一个脚本
编写背景: 由于线上用户反馈媒体添加页加载时间很长,猜测是由于本地视频内存过大引起,于是编写此脚本以便快速生成内存很大的视频 代码如下: # coding=utf-8 from moviepy.edi ...
- Model接口
/** * Model接口 * 作用:将值存放到request对象 * * * @return */ @RequestMapping(value = "/testModle") p ...
- Web前端入门第 36 问:多图细说 CSS grid 网格布局(一)父元素容器相关属性
grid 网格布局与 flex 弹性盒子布局一样,都需要控制 容器 跟 子元素 的样式才能做出想要的效果,部分场景只控制 容器 样式也行. grid 样式属性 一大堆 属性 来袭~~ 与网格相关的 C ...
- 邮件自动回复助手(Rasa/SMTP)实现教程
在现代办公场景中,处理大量邮件是一项既耗时又容易出错的任务.为了提升工作效率,我们可以利用自然语言处理(NLP)和邮件传输协议(SMTP)技术,构建一个智能的邮件自动回复助手.本文将详细介绍如何使用P ...
- css给dom插入/追加文字/内容
A.使用选择器来插入内容 h2:before{ content:"前缀"; } h2:after{ content:"后缀"; } B.指定个别的元素不进行插入 ...
- Asp.net core 少走弯路系列教程(一)了解 W3C
前言 新人学习成本很高,网络上太多的名词和框架,全部学习会浪费大量的时间和精力. 新手缺乏学习内容的辨别能力,本系列文章为新手过滤掉不适合的学习内容(比如多线程等等),让新手少走弯路直通罗马. 作者认 ...
- EFCore 高并发
EFCore 高并发 有常见的并发场景?如果我们使用EFCore常用的解决方法会出现哪些问题?对应不同的并发场景我们应该选择哪些的处理方式? 参照:事务的四种隔离级别详解_事务隔离级别-CSDN博客 ...
