PLSQL官方下载、安装和使用完全指南

PL/SQL 官方下载、安装和使用完全指南

PL/SQL(Procedorial Language/Structured Query Language)是 Oracle 数据库的专有过程化扩展语言,用于在 Oracle 数据库中编写存储过程、函数、包、触发器等程序单元。它无缝集成 SQL,提供条件判断、循环、异常处理等编程功能,广泛应用于数据库应用开发。本指南基于 Oracle 官方文档和工具(截至 2025 年 10 月),聚焦免费官方路径:使用 Oracle SQL Developer(免费 IDE,支持 PL/SQL 开发、调试)和 Oracle Database Express Edition (XE)(免费数据库,用于本地测试)。如果您需要商业版数据库,请访问 Oracle 支持门户。

注意:PL/SQL 不是独立产品,而是 Oracle 数据库的一部分。开发需要连接到 Oracle 数据库实例。商业第三方工具如 Allround Automations 的 PL/SQL Developer 提供 30 天试用,但本指南优先官方免费工具。

1. 前提条件

  • 操作系统:Windows、macOS 或 Linux(SQL Developer 支持跨平台)。
  • 硬件:至少 4GB RAM、2GHz CPU(推荐 8GB+)。
  • 网络:需 Oracle 账户(免费注册)下载软件。
  • Java:SQL Developer 需要 JDK 17(Oracle 官方推荐)。
  • Oracle 数据库:本地开发需安装 XE,或使用 Oracle Cloud Always Free 实例(免费)。

2. 官方下载

所有下载免费,但需 Oracle 账户登录。访问 Oracle 下载中心,搜索相关产品。

组件描述下载链接文件大小支持平台
Oracle SQL Developer免费 IDE,用于编写、调试 PL/SQL。包含 PL/SQL 编辑器、调试器、查询工具。SQL Developer 下载页~25MB(不含 JDK)Windows、macOS、Linux
Oracle JDK 17SQL Developer 运行所需 Java(如果未安装)。Oracle JDK 下载~200MB跨平台
Oracle Database XE 23ai免费本地数据库,支持 PL/SQL 开发(Express Edition,限 12GB 用户数据)。Database 下载页(选择 XE 版本)~5GBWindows、Linux
PL/SQL 文档官方手册,包括语法参考。PL/SQL 语言参考PDF/HTML

下载步骤

  1. 注册/登录 Oracle 账户
  2. 对于 SQL Developer:选择“Windows 64-bit with JDK”或“无 JDK”版本(推荐带 JDK 的 zip 包)。
  3. 对于 Database XE:选择“Oracle Database 23ai Express Edition for Windows x64”。

3. 安装指南

安装顺序:JDK → SQL Developer → Database XE(可选,本地测试用)。

3.1 安装 Oracle JDK 17
  1. 下载 JDK 安装包(.exe for Windows,.dmg for macOS,.tar.gz for Linux)。
  2. Windows:双击 .exe,遵循向导安装(默认路径 C:\Program Files\Java\jdk-17)。
  3. macOS:打开 .dmg,拖拽到 Applications。
  4. Linux:解压 tar.gz 到 /opt/java,设置环境变量:
   export JAVA_HOME=/opt/java/jdk-17
   export PATH=$JAVA_HOME/bin:$PATH
  1. 验证:命令行运行 java -version,应显示 “openjdk version 17”。
3.2 安装 Oracle SQL Developer
  1. 下载 zip 包,解压到新文件夹(如 C:\sqldeveloper)。
  2. Windows:双击 sqldeveloper.exe(带 JDK 版本无需额外配置)。
  3. macOS/Linux:运行 ./sqldeveloper.sh,若提示 JDK 路径,输入 JDK 安装目录。
  4. 无需管理员权限。首次启动会提示设置 JDK 路径(如果未检测到)。
  5. 验证:启动后看到欢迎界面,即成功。

常见问题

  • “找不到 JDK”:手动指定路径(Tools > Preferences > Environment)。
  • Windows DLL 错误:确保 PATH 中 64-bit msvcr100.dll 优先(复制到 sqldeveloper\bin)。
3.3 安装 Oracle Database XE(可选,本地数据库)
  1. 下载 .zip 或 .rpm,解压。
  2. Windows
  • 以管理员运行 setup.exe。
  • 选择安装路径(默认 C:\app\oracle)。
  • 设置密码(SYS/SYSTEM 用户)。
  • 安装后,服务自动启动。
  1. Linux
   sudo rpm -ivh oracle-database-xe-23c-1.0-1.x86_64.rpm
   sudo /etc/init.d/oracle-xe-23c configure  # 配置密码
  1. 验证:浏览器访问 http://localhost:8080,登录 SYS 用户。或命令行 sqlplus sys/password@XE as sysdba
  2. 云替代:注册 Oracle Cloud Free Tier,创建 Always Free Autonomous Database(无需安装,支持 PL/SQL)。

卸载:使用控制面板(Windows)或 rpm -e(Linux)。

4. 配置和连接

  1. 启动 SQL Developer。
  2. 创建连接(Connections 面板右键 > New Connection):
  • 名称:如 “Local XE”。
  • 主机名:localhost(本地)或云 IP。
  • 端口:1521(默认)。
  • SID/Service Name:XE(本地)或云服务名。
  • 用户名/密码:hr/hr(示例 schema,安装后解锁:ALTER USER hr ACCOUNT UNLOCK;)。
  1. 测试连接:点击 “Test”,成功后保存。
  2. 启用 DBMS Output(用于 PL/SQL 输出):View > DBMS Output,连接后点击 + 添加连接。

云连接示例:在 Oracle Cloud,获取 Wallet 文件(.zip),导入 SQL Developer(Tools > Preferences > Database > Advanced > Use OCI Driver)。

5. 使用指南

PL/SQL 在 SQL Developer 中通过 Worksheet(SQL 工作表)编写和执行。支持语法高亮、自动补全、调试。

5.1 基本语法回顾

PL/SQL 代码以块结构组织:

DECLARE  -- 声明部分(变量、游标等)
BEGIN    -- 执行部分(SQL、逻辑)
EXCEPTION -- 异常处理
END;     -- 结束
5.2 编写和执行简单 PL/SQL 块
  1. 打开新 Worksheet(绿色 + 图标),选择连接。
  2. 输入匿名块示例(打印 Hello World):
   BEGIN
       DBMS_OUTPUT.PUT_LINE('Hello, PL/SQL World!');
   END;
   /
  1. 执行:按 F5(脚本模式)或 Ctrl+Enter(语句模式)。输出在 DBMS Output 面板。
  2. 结果:控制台显示 “Hello, PL/SQL World!”。
5.3 创建存储过程
  1. 右键连接 > New > Procedure。
  2. 输入代码示例(计算两个数之和):
   CREATE OR REPLACE PROCEDURE add_numbers(p_a NUMBER, p_b NUMBER, p_result OUT NUMBER)
   AS
   BEGIN
       p_result := p_a + p_b;
       DBMS_OUTPUT.PUT_LINE('Sum: ' || p_result);
   END;
   /
  1. 编译:Ctrl+F7 或点击 Compile。无错误则成功。
  2. 执行:新 Worksheet 输入:
   DECLARE
       v_result NUMBER;
   BEGIN
       add_numbers(5, 3, v_result);
   END;
   /

输出:Sum: 8。

5.4 创建函数
  1. 右键 > New > Function。
  2. 示例(字符串长度):
   CREATE OR REPLACE FUNCTION get_length(p_str VARCHAR2) RETURN NUMBER
   AS
   BEGIN
       RETURN LENGTH(p_str);
   END;
   /
  1. 调用:SELECT get_length('Hello') FROM DUAL;(结果:5)。
5.5 调试 PL/SQL
  1. 右键过程/函数 > Compile for Debug(启用调试)。
  2. 设置断点:点击行号左侧。
  3. 右键 > Debug > 选择主程序。
  4. 运行:F9。使用 F7(步入)、F8(步过)、F5(继续)控制执行。
  5. 查看变量:Debug 面板显示值,可修改。
5.6 高级使用
  • 包(Package):New > Package。规范(spec)和体(body)分离,提高模块化。
  • 触发器(Trigger):New > Trigger。示例:AFTER INSERT ON table。
  • 游标和批量处理:使用 FOR 循环处理查询结果,提高性能。
  • 动态 SQL:EXECUTE IMMEDIATE 用于运行时构建 SQL。
  • 性能优化:使用 Explain Plan(F6)分析 SQL。
  • 版本控制:集成 Git(Team > Git)。

示例完整脚本(批量插入数据):

DECLARE
    CURSOR c_emp IS SELECT * FROM employees;
    v_count NUMBER := 0;
BEGIN
    FOR rec IN c_emp LOOP
        INSERT INTO emp_log VALUES (rec.employee_id, SYSDATE);
        v_count := v_count + 1;
    END LOOP;
    COMMIT;
    DBMS_OUTPUT.PUT_LINE('Inserted: ' || v_count || ' records.');
EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
        DBMS_OUTPUT.PUT_LINE('Error: ' || SQLERRM);
END;
/

6. 常见问题与故障排除

问题原因解决方案
ORA-01017: 无效用户名/密码连接凭证错误检查用户名/密码,解锁 schema(ALTER USER username IDENTIFIED BY password ACCOUNT UNLOCK;)。
TNS: 无监听程序数据库未启动Windows 服务管理器启动 OracleServiceXE;Linux: sqlplus / as sysdba; STARTUP;
PL/SQL 编译错误语法问题检查分号、END;。使用 Ctrl+Shift+K 格式化代码。
无输出DBMS_OUTPUT 未启用View > DBMS Output > + 连接 > Set Serveroutput On。
调试失败未编译为 Debug右键 > Compile for Debug。需 DBA 权限(GRANT DEBUG ON schema.* TO user;)。
内存不足大型脚本增加 JVM 内存(sqldeveloper.conf 编辑 -Xmx)。

7. 学习资源

  • 官方教程PL/SQL for Developers(视频和练习)。
  • 文档PL/SQL 用户指南
  • 社区: Oracle Forums、Stack Overflow。
  • 书籍:Oracle PL/SQL Programming(Steven Feuerstein)。
  • 在线练习:Oracle Live SQL(免费云环境)。

此指南覆盖从零到高级使用。如果您使用云数据库或特定版本,请提供细节以进一步定制!

类似文章

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注