内容简介
第1章 PL/SQL概念
1.1 实验1:PL/SQL架构
1.1.1 PL/SQL架构
1.1.2 PL/SQL块结构
1.1.3 PL/SQL是如何执行的
1.2 实验2:PL/SQL开发环境
1.2.1 初步掌握SQL Developer的使用
1.2.2 初步掌握SQL*Plus的使用
1.2.3 执行PL/SQL脚本
1.3 实验3:PL/SQL基础知识
1.3.1 DBMS_OUTPUT.PUT_LINE语句
1.3.2 替代变量功能
1.4 总结
第2章 PL/SQL语言基础
2.1 实验:PL/SQL编程基础
2.1.1 PL/SQL语言组件
2.1.2 PL/SQL变量
2.1.3 PL/SQL保留字
2.1.4 PL/SQL中的标识符
2.1.5 挂靠的数据类型
2.1.6 声明和初始化变量
2.1.7 块作用域、嵌套块和标签
2.2 总结
第3章 在PL/SQL中的SQL
3.1 实验1:在PL/SQL中的DML语句
3.1.1 使用SELECT INTO初始化变量
3.1.2 使用变量初始化的SELECT INTO语法
3.1.3 在PL/SQL块中使用DML
3.1.4 在PL/SQL块中使用序列
3.2 实验2:在PL/SQL中的事务控制
3.2.1 使用COMMIT、ROLLBACK和SAVEPOINT
3.2.2 将DML和事务控制相结合
3.3 总结
第4章 条件控制:IF语句
4.1 实验1:IF语句
4.1.1 IF-THEN语句
4.1.2 IF-THEN-ELSE语句
4.2 实验2:ELSIF语句
4.3 实验3:嵌套的IF语句
4.4 总结
第5章 条件控制:CASE语句
5.1 实验1:CASE语句
5.1.1 CASE语句
5.1.2 搜索CASE语句
5.2 实验2:CASE表达式
5.3 实验3:NULLIF和COALESCE函数
5.3.1 NULLIF函数
5.3.2 COALESCE函数
5.4 总结
第6章 迭代控制:第一部分
6.1 实验1:简单循环
6.1.1 EXIT语句
6.1.2 EXIT WHEN语句
6.2 实验2:WHILE循环
6.2.1 使用WHILE循环
6.2.2 提前终止WHILE循环
6.3 实验3:数字FOR循环
6.3.1 在循环中使用IN选项
6.3.2 在循环中使用REVERSE选项
6.3.3 提前终止数字FOR循环
6.4 总结
第7章 迭代控制:第二部分
7.1 实验1:CONTINUE语句
7.1.1 使用CONTINUE语句
7.1.2 CONTINUE WHEN语句
7.2 实验2:嵌套循环
7.2.1 使用嵌套循环
7.2.2 使用循环标签
7.3 总结
第8章 错误处理和内置异常
8.1 实验1:处理错误
8.2 实验2:内置异常
8.3 总结
第9章 异常
9.1 实验1:异常作用域
9.2 实验2:用户定义的异常
9.3 实验3:异常传播
9.4 总结
第10章 异常:高级概念
10.1 实验1:RAISE_APPLICATION_ERROR
10.2 实验2:EXCEPTION_INIT编译指示
10.3 实验3:SQLCODE和SQLERRM
10.4 总结
第11章 游标简介
11.1 实验1:游标类型
11.1.1 使用隐式游标
11.1.2 使用显式游标
11.2 实验2:游标循环
11.2.1 处理显式游标
11.2.2 使用用户定义的记录
11.2.3 使用游标属性
11.3 实验3:游标FOR循环
11.4 实验4:嵌套游标
11.5 总结
第12章 高级游标
12.1 实验1:参数化游标
12.2 实验2:复杂的嵌套游标
12.3 实验3:FOR UPDATE和WHERE CURRENT游标
12.3.1 FOR UPDATE游标
12.3.2 游标中的FOR UPDATE OF
12.3.3 游标中的WHERE CURRENT OF
12.4 总结
第13章 触发器
13.1 实验1:什么是触发器
13.1.1 数据库触发器
13.1.2 BEFORE触发器
13.1.3 AFTER触发器
13.1.4 自治事务
13.2 实验2:触发器类型
13.2.1 行触发器和语句触发器
13.2.2 INSTEAD OF触发器
13.3 总结
第14章 变异表和复合触发器
14.1 实验1:变异表
14.1.1 什么是变异表
14.1.2 解决变异表问题
14.2 实验2:复合触发器
14.2.1 什么是复合触发器
14.2.2 解决变异表问题的复合触发器
14.3 总结
第15章 集合
15.1 实验1:PL/SQL表
15.1.1 关联数组
15.1.2 嵌套表
15.1.3 集合方法
15.2 实验2:变长数组
15.3 实验3:多级集合
15.4 总结
第16章 记录
16.1 实验1:记录类型
16.1.1 基于表和基于游标的记录
16.1.2 用户定义的记录
16.1.3 记录兼容性
16.2 实验2:嵌套记录
16.3 实验3:记录集合
16.4 总结
第17章 本地动态SQL
17.1 实验1:EXECUTE IMMEDIATE语句
17.1.1 使用EXECUTE IMMEDIATE语句
17.1.2 如何避免使用EXECUTE IMMEDIATE的常见ORA错误
17.2 实验2:OPEN-FOR、FETCH和CLOSE语句
17.2.1 打开游标
17.2.2 从游标中读取
17.2.3 关闭游标
17.3 总结
第18章 批量SQL
18.1 实验1:FORALL语句
18.1.1 使用FORALL语句
18.1.2 SAVE EXCEPTIONS选项
18.1.3 INDICES OF选项
18.1.4 VALUES OF选项
18.2 实验2:BULK COLLECT子句
18.3 实验3:在SQL语句中绑定集合
18.3.1 将集合与EXECUTE IMMEDIATE语句绑定
18.3.2 将集合与OPEN-FOR、FETCH和CLOSE语句绑定
18.4 总结
第19章 过程
19.1 模块化代码的好处
19.1.1 块结构
19.1.2 匿名块
19.2 实验1:创建过程
19.2.1 实践创建过程的语法
19.2.2 查询数据字典来获取过程的信息
19.3 实验2:传递的过程参数IN和OUT
19.4 总结
第20章 函数
20.1 实验1:创建函数
20.1.1 创建存储函数
20.1.2 使用函数
20.2 实验2:在SQL语句中使用函数
20.2.1 在SQL语句中调用函数
20.2.2 编写复杂函数
20.3 实验3:在SQL中优化函数执行
20.3.1 使用WITH子句定义函数
20.3.2 使用UDF编译指示创建函数
20.4 总结
第21章 包
21.1 实验1:创建包
21.1.1 创建包规范
21.1.2 创建包体
21.1.3 调用已存储的包
21.1.4 创建私有对象
21.2 实验2:游标变量
21.3 实验3:扩展包
21.4 实验4:包的实例化和初始化
21.5 实验5:SERIALLY_REUSABLE包
21.6 总结
第22章 存储代码
22.1 实验:收集存储代码的相关信息
22.1.1 从数据字典获取存储代码的信息
22.1.2 重载模块
22.2 总结
第23章 Oracle对象类型
23.1 实验1:对象类型
23.1.1 创建对象类型
23.1.2 使用对象类型与集合
23.2 实验2:对象类型的方法
23.2.1 构造方法
23.2.2 成员方法
23.2.3 静态方法
23.2.4 比较对象
23.3 总结
第24章 Oracle提供的包
24.1 实验1:利用Oracle提供的包扩展功能
24.1.1 在PL/SQL中利用UTL_FILE访问文件
24.1.2 利用DBMS_JOB调度作业
24.1.3 利用DBMS_XPLAN生成解释计划
24.1.4 利用DBMS_SQL产生隐式语句结果
24.2 实验2:利用Oracle提供的包报告错误
24.2.1 利用DBMS_UTILITY包报告错误
24.2.2 利用UTL_CALL_STACK包报告错误
24.3 总结
第25章 优化PL/SQL
25.1 实验1:PL/SQL调优工具
25.1.1 PL/SQL剖析器API
25.1.2 跟踪API
25.1.3 PL/SQL层次式剖析器
25.2 实验2:PL/SQL优化级别
25.3 实验3:子程序内联
25.4 总结
附录A PL/SQL格式化准则
附录B 学生数据库模式