启动命令窗口
*SQLPlus(Oracle官方命令行工具)**
- Windows:
按Win+R
输入cmd
打开系统命令行 → 输入:sqlplus 用户名/密码@数据库服务名
- Linux/macOS:
打开终端 → 输入:sqlplus 用户名/密码@//主机名:端口/服务名
SQL Developer(图形化工具的命令窗口)
- 打开SQL Developer → 顶部菜单选择 “View” → “SQL Worksheet” → 在右侧窗口输入命令。
基础命令操作
执行SQL语句
SELECT * FROM employees; -- 直接输入语句,以分号结束
- 按
Enter
执行。
执行PL/SQL代码块
BEGIN FOR emp_rec IN (SELECT * FROM employees WHERE department_id = 10) LOOP DBMS_OUTPUT.PUT_LINE(emp_rec.first_name); END LOOP; END; /
- 关键:以 单独一行结束代码块(不可省略)。
启用输出显示
PL/SQL的 DBMS_OUTPUT
需手动开启:
SET SERVEROUTPUT ON; -- 在SQL*Plus或SQL Worksheet中执行
常用实用命令
命令 | 作用 |
---|---|
DESC table_name; |
查看表结构 |
SHOW ERRORS; |
显示最近编译的错误 |
SPOOL file_path; |
将输出保存到文件(SPOOL OFF 结束) |
@script_path.sql; |
运行外部SQL脚本 |
EDIT |
打开默认编辑器修改代码 |
调试与优化技巧
-
错误定位
若PL/SQL编译报错,输入SHOW ERRORS
查看详细错误行号和原因。 -
执行计划分析
使用EXPLAIN PLAN
优化SQL:EXPLAIN PLAN FOR SELECT * FROM employees WHERE salary > 5000; SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
-
绑定变量
在SQL*Plus中声明变量提高复用性:VARIABLE emp_id NUMBER; EXEC :emp_id := 100; SELECT * FROM employees WHERE employee_id = :emp_id;
注意事项
-
符号规范
- 每行SQL以 结束,PL/SQL块以 结束。
- 字符串必须用单引号
'text'
。 - 注释用 或 。
-
环境配置
- SQL*Plus中可用
SET LINESIZE 200
调整行宽,避免输出格式错乱。 - 中文乱码时检查NLS_LANG环境变量(如
AMERICAN_AMERICA.AL32UTF8
)。
- SQL*Plus中可用
-
权限问题
执行DDL(如CREATE/ALTER)需用户拥有对应权限,否则报错ORA-01031
。
实战示例
场景:创建存储过程并调用
-- 1. 创建过程 CREATE OR REPLACE PROCEDURE raise_salary (p_id IN NUMBER) AS BEGIN UPDATE employees SET salary = salary * 1.1 WHERE employee_id = p_id; COMMIT; END; / -- 2. 调用过程 EXEC raise_salary(101); -- SQL*Plus中 CALL raise_salary(101); -- SQL Developer中 -- 3. 验证结果 SELECT salary FROM employees WHERE employee_id = 101;
常见问题解答
Q1:为什么DBMS_OUTPUT
不显示输出?
需先执行
SET SERVEROUTPUT ON;
,且部分工具(如Toad)需额外配置输出面板。
Q2:如何终止长时间运行的命令?
在SQL*Plus中按
Ctrl+C
;在SQL Developer中点击 “Cancel” 按钮。
Q3:命令窗口与SQL Worksheet的区别?
SQL*Plus是轻量级命令行工具;SQL Developer的Worksheet提供图形辅助(如自动补全、结果表格展示)。
引用说明:
- Oracle官方文档:SQL*Plus Guide
- Oracle PL/SQL最佳实践:《Oracle PL/SQL Programming, 6th Edition》(Steven Feuerstein)
- 示例测试环境:Oracle Database 19c, SQL Developer 21.4
通过命令窗口高效操作PL/SQL,是Oracle开发者必备的核心技能,建议结合官方文档反复练习,熟练掌握常用命令以提升数据库管理效率。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7175.html