Oracle PL/SQL 学习笔记:从菜鸟到进阶

需积分: 50 24 下载量 109 浏览量 更新于2024-09-16 收藏 86KB DOCX 举报
"Oracle PL/SQL菜鸟学习笔记" Oracle PL/SQL是一种用于Oracle数据库的编程语言,结合了SQL的查询能力与过程式编程的灵活性。这篇学习笔记主要涵盖了PL/SQL的基础概念,包括创建存储过程、带参数的过程、错误检查、块结构、变量命名规则以及函数和包的创建。 1. 创建存储过程: 存储过程是一组预先编译的SQL语句,可以在需要时重复调用。例如: ```sql CREATE OR REPLACE PROCEDURE my_plis BEGIN // 执行部分 END; / ``` 这将创建一个名为`my_plis`的简单存储过程。 2. 带参数的存储过程: 可以为存储过程传递参数,如下所示: ```sql CREATE PROCEDURE sp_test2 (spname VARCHAR2, newclassid NUMBER) IS BEGIN UPDATE student SET classid = newclassid WHERE studentname = spname; END; / ``` 这里的`sp_test2`接受两个参数:`spname`和`newclassid`,用于更新学生班级ID。 3. 错误检查: 使用`SHOW ERROR`命令查看存储过程中的错误: ```sql SHOW ERROR -- 查看错误 ``` 4. 调用存储过程: 有两种方式调用存储过程:`EXEC`或`CALL`: ```sql EXEC 过程名(参数值1, ...); CALL 过程名(参数值1, ...); ``` 5. 命名规范: 遵循一定的命名约定,如: - 变量:`v_变量名`; - 常量:`c_常量名`; - 游标:`名字_cursor`; - 例外:`e_名字`; 6. 块结构: PL/SQL的代码块由以下几个部分组成: - `SET SERVEROUTPUT ON`:打开输出; - `DECLARE`:声明部分,定义变量(可选); - `BEGIN`:执行部分(必需); - `EXCEPTION`:异常处理; - `END`:结束; 例如: ```sql BEGIN DBMS_OUTPUT.PUT_LINE('hello'); END; / ``` 7. 变量命名规则: - 变量名称可以包含字母、数字和特殊符号,但必须以字母开头; - 不区分大小写; - 最大长度为30个字符; - 不能有空格; - 示例: ```sql DECLARE v_student VARCHAR2(20); BEGIN SELECT studentname INTO v_student FROM student WHERE xh = '&xh'; DBMS_OUTPUT.PUT_LINE('姓名:' || v_student); EXCEPTION WHEN NO_DATA_FOUND THEN DBMS_OUTPUT.PUT_LINE('查无此人'); -- 异常处理 END; / ``` 8. 创建函数: 函数类似于存储过程,但返回一个值。例如: ```sql CREATE FUNCTION sp_fun1 (spname VARCHAR2) RETURN NUMBER IS s_age NUMBER(3); BEGIN SELECT age + 1 INTO s_age FROM student WHERE studentname = spname; RETURN s_age; END; ``` 这个函数`sp_fun1`接收一个参数`spname`,并返回一个加1后的年龄值。 9. 调用函数: 使用`EXEC`和`INTO`关键字调用函数并将结果赋值给变量: ```sql VAR result NUMBER; EXEC sp_fun1('张三') INTO :result; ``` 10. 创建包: 包是封装相关过程和函数的集合,有助于代码组织: ```sql CREATE PACKAGE sp_package AS PROCEDURE my_procedure; FUNCTION my_function RETURN NUMBER; END; / CREATE PACKAGE BODY sp_package AS PROCEDURE my_procedure IS BEGIN -- 实现 END; FUNCTION my_function RETURN NUMBER IS f_result NUMBER; BEGIN -- 实现 RETURN f_result; END; END; / ``` 这样就创建了一个包含过程`my_procedure`和函数`my_function`的包`sp_package`。 以上就是Oracle PL/SQL的基本概念和操作,对于初学者来说,理解这些概念是进一步深入学习的关键。