作为拥有10年Oracle开发经验的资深工程师,我将为您提供一份专业级的客户端工具指南。无论您是初学者还是进阶开发者,本教程都将帮助您高效使用Oracle生态中最强大的两个工具。

一、工具对比与选择建议

特性 SQL Developer PL/SQL Developer
开发商 Oracle官方 Allround Automations
许可证 免费 商业版($227)
安装大小 约300MB 约50MB
性能表现 中等 极快
学习曲线 平缓 陡峭
调试能力 基础 专业级
数据建模 内置 需插件
适用场景 日常开发/管理 企业级开发/调试

选择建议

  • 初学者/轻量使用 → SQL Developer
  • DBA/专业开发者 → PL/SQL Developer
  • 最佳实践:同时安装,根据任务切换使用

二、SQL Developer 安装与配置

步骤1:环境准备

  1. 安装Java

    • 下载JDK 17+:Oracle官网
    • 配置环境变量:
      JAVA_HOME=C:\Program Files\Java\jdk-17
      Path=%JAVA_HOME%\bin
  2. 下载安装包

步骤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:创建数据库连接

  1. 点击"新建连接"图标(绿色加号)
  2. 填写连接信息:
    连接名: PROD_DB
    用户名: system
    密码: ******
    主机名: db-server.company.com
    端口: 1521
    服务名: ORCLPDB
  3. 高级选项:
    • 角色:SYSDBA(管理员)/ Normal(普通用户)
    • 保存密码:启用安全存储
    • 测试连接:确认状态为"成功"

步骤4:界面配置优化

  1. 主题设置

    • 工具 → 首选项 → 代码编辑器 → 字体(推荐Consolas 12pt)
    • 外观 → 主题 → Dark(护眼模式)
  2. 快捷键自定义

    常用操作:
    Ctrl+Enter → 执行语句
    Ctrl+/ → 注释代码
    F4 → 描述对象结构

三、SQL Developer 核心功能实战

1. 数据库对象管理

graph LR
A[连接数据库] --> B[表]
A --> C[视图]
A --> D[存储过程]
A --> E[函数]
A --> F[包]
  • 表操作示例

    1. 展开"表"节点 → 右键"新建表"
    2. 设计表结构:
      CREATE TABLE employees (
      id NUMBER PRIMARY KEY,
      name VARCHAR2(50) NOT NULL,
      salary NUMBER(10,2),
      hire_date DATE DEFAULT SYSDATE
      );
    3. 生成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

  1. 右键表 → 导出
  2. 格式选择CSV
  3. 设置分隔符(默认逗号)
  4. 指定输出路径

导入Excel数据

  1. 工具 → 数据库复制 → 复制到数据库
  2. 选择Excel文件
  3. 映射列到目标表
  4. 设置提交频率(每1000行)

4. 版本控制集成

  1. 工具 → 版本控制 → 注册项目
  2. 选择Git/SVN工作目录
  3. 提交变更:
    # 自动检测SQL文件变更
    git add src/*.sql
    git commit -m "添加员工表结构"

四、PL/SQL Developer 专业级配置

安装步骤(Windows)

  1. 获取安装包

  2. 运行安装

    双击 plsqldev1400x64.exe
    接受协议 → 选择安装路径 → 完成
  3. 配置Oracle客户端

    1. 下载 Oracle Instant Client
    2. 解压到 C:\instantclient_19_15
    3. 配置环境变量:
      PATH=C:\instantclient_19_15;%PATH%
      TNS_ADMIN=C:\instantclient_19_15\network\admin
    4. 创建 tnsnames.ora
      ORCL =
      (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = db-server)(PORT = 1521))
      (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = ORCLPDB)
      )
      )

连接配置

  1. 启动PL/SQL Developer
  2. 登录窗口:
    Username: system
    Password: ******
    Database: ORCL # 匹配tnsnames.ora配置
    Connect as: SYSDBA
  3. 保存连接:勾选"Save Password"

界面优化设置

  1. 主题与布局

    • 工具 → 首选项 → 用户界面 → 选择"Modern Dark"
    • 窗口 → 保存布局 → 命名"开发模式"
  2. 编辑器增强

    [首选项 → 编辑器]
    字体: 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;

调试操作

  1. 右键过程 → 测试 → 添加调试信息
  2. 点击"开始调试器"(甲虫图标)
  3. 使用控制台:
    • 单步进入(F7)
    • 继续(F8)
    • 查看变量:添加emp.name到监视窗口

2. 性能优化工具

  1. 会话浏览器

    • 工具 → 会话
    • 查看锁定对象/Kill长事务
  2. 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. 模板与代码库

自定义模板

  1. 文件 → 新建 → 模板
  2. 创建常用代码片段:
    -- 模板名: sel_table
    SELECT * FROM ${table} WHERE rownum <= 100;
  3. 使用快捷键:sel_table + Ctrl+Space

共享代码库

  1. 工具 → 首选项 → 文件 → 设置库目录
  2. 团队共享网络路径:\\nas\dev\plsql_lib
  3. 调用共享代码:@//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:存储过程调试

graph TD
A[设置断点] --> B[启动调试]
B --> C{SQL Developer?}
C -->|是| D[基础单步调试]
C -->|否| E[PL/SQL专业调试]
E --> F[变量监视]
E --> G[调用堆栈分析]
E --> H[性能热点定位]

七、常见问题解决方案

问题1:连接时报ORA-12154

原因:TNS解析失败

解决

  1. 检查tnsnames.ora位置(echo %TNS_ADMIN%
  2. 验证配置别名是否匹配
  3. 使用完整连接串测试:
    (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=db-server)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCLPDB)))

问题2:PL/SQL Developer中文乱码

修复步骤

  1. 添加环境变量:
    set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
  2. 注册表修改:
    [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. 安全加固建议

  1. 连接加密

    • 配置sqlnet.ora:
      SQLNET.ENCRYPTION_SERVER = REQUIRED
      SQLNET.CRYPTO_CHECKSUM_SERVER = REQUIRED
  2. 审计敏感操作
    CREATE AUDIT POLICY ddl_policy
    ACTIONS CREATE TABLE, DROP TABLE; AUDIT POLICY ddl_policy BY developer;

九、学习资源推荐

  1. 官方文档

  2. 进阶书籍

    • 《Oracle PL/SQL Programming》(Steven Feuerstein)
    • 《SQL Developer for Oracle DBAs》(Robert Freeman)
  3. 社区支持

    • Oracle官方论坛:community.oracle.com
    • Stack Overflow #oracle标签

工程师建议:每周投入2小时专项练习,两个月内可达到专业水平。重点关注:执行计划分析、PL/SQL调试技巧、批量数据处理。

通过本教程,您已掌握Oracle两大核心工具的专业级使用方法。立即应用这些技巧,您将体验到开发效率的质的飞跃!遇到具体技术难题时,欢迎在评论区交流讨论。

Oracle 客户端深度指南:SQL Developer 与 PL/SQL Developer 全面安装使用教程的更多相关文章

  1. Oracle SQL Developer,Oracle 开发工具之toad、SQL Developer、PL/SQL Developer等比较

    参考: oracle 的几个开发工具比较 因Oracle几乎是中大型商业企业数据的首选,所以比较一下常用与Oracle的工具. Oracle SQL Developer 免费,一般开发使用足矣,常用. ...

  2. sql plus 和 pl/sql无法连接远程oracle数据库

    前言:安装完oracle客户端后,可能会出现sql plus 和 pl/sql无法连接远程oracle数据库的情况,可能是以下原因: 针对sql plus连接不上: 1 可能原因:之前安装过oracl ...

  3. Oracle实战笔记(第六天)之PL/SQL基础

    一.PL/SQL介绍 1.概念 PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/SQL是Oracle数据库对SQL语句的扩展.在普通SQL语 ...

  4. oracle学习笔记(十五) PL/SQL语法结构以及使用

    PL/SQL 简介 PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言. PL/SQL 是对 SQL 的扩展. 支持多种数据类型,如大对象和 ...

  5. 在SQL中使用PL/SQL函数存在的问题

    -----------------------------Cryking原创------------------------------ -----------------------转载请注明出处, ...

  6. SQL语句、PL/SQL块和SQL*Plus命令之间的区别

    SQL语句.PL/SQL块和SQL*Plus命令之间的区别   原文链接:https://blog.csdn.net/liuzhushiqiang/article/details/12320941 在 ...

  7. PLSQL Developer概念学习系列之登录连接Oracle时出现(没有登录) -PL / SQL Developer:ORA - 12541: TNS :无建听程序的错误解决办法(图文详解)

    不多说,直接上干货! 前期博客 PLSQL Developer概念学习系列之如何正确登录连接上Oracle(图文详解)   如用scott.scott_password进行登录,orcl是全局数据库 ...

  8. Oracle 11g系列:SQL Plus与PL/SQL

    SQL Plus是Oracle提供的一种用户接口,是数据库与用户之间进行交互的工具. PL/SQL是Oracle的过程化编程语言. 1.登录SQL Plus 利用Windows的[开始]|[运行]命令 ...

  9. oracle 11g 64w 用32位的pl/sql

    1.  下载64位Oracle,解压两文件,解压完成后将文件合并,安装: 2.  下载PL/SQL,安装: 3.  下载instantclient-basic-win32-11.2.0.1.0.zip ...

  10. oracle学习之路(四) ---------PL/SQL 表,二维数组(TABLE)

    LOB类型 ORACLE提供了LOB (Large OBject)类型.用于存储大的数据对象的类型.ORACLE眼下主要支持BFILE, BLOB, CLOB 及 NCLOB 类型. NCLOB 存储 ...

随机推荐

  1. JDK8-时间格式化类-时区类-工具类--java进阶day07

    1.时间格式化类:DateTimeFormatter 1.创建方式 使用DateTimeFormatter调用ofPattern方法即可 . 2.格式化方法 创建好DateTimeFormatter对 ...

  2. 【Java】关键字的使用

    java中有很多的关键字,他们的使用让Java语言变得更加灵活.易用,下面将介绍Java中最常用的几个关键字并说明其用法. 一.关键字:return--跳出 使用在方法体中,用于:① 结束方法② 针对 ...

  3. 【Web】支持纯静态的Layuimini版本

    支持纯静态的Layuimini版本 本人做了点小小的改动,在来的基础上添加了对静态的支持. 零.起因 要做个项目,但是用的是JSP,想着用Layui,然后去找模板,发现这个Layuimini.但是这个 ...

  4. FireDAC的数据库的FDConnect

    通常,我们设置一个ini文件,按照FDConnection的ini格式要求配置好.然后直接调用通知连接数据库是否OK. FireDAC可以通过FDManager管理ini文件简单实现.即由FDConn ...

  5. 9. RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明

    9. RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明 @ 目录 9. RabbitMQ 消息队列幂等性,优先级队列,惰性队列的详细说明 1. RabbitMQ 消息队列的 " ...

  6. Go操作MySQL总结

    1.下载驱动包 打开GoLand->Terminal,输入:go get github.com/go-sql-driver/mysql 2.编写代码 package mainimport ( & ...

  7. Linux之新增文件夹

    一.格式 mkdir 文件名 二.案例 #查看文件 root@bbbbeb52:/# ll total 108 drwxr-xr-x. 1 root root 57 May 24 13:09 ./ d ...

  8. Java Solon-MCP 实现 MCP 实践全解析:SSE 与 STDIO 通信模式详解

    参文参考自:https://blog.csdn.net/lingding_cn/article/details/147355620 一.MCP简介 MCP(Model Context Protocol ...

  9. AssemblyResolve巧解未能加载文件或程序集“Newtonsoft.Json, Version=6.0.0.0的问题

    问题:未能加载文件或程序集"Newtonsoft.Json, Version=6.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aee ...

  10. SgLang代码细读-2.forward过程

    SgLang代码细读-2.forward过程 总览 Forward的主要过程围绕着 run_batch->TPModelWorker->ModelRunner->Model-> ...