第Ⅰ部分 PL/SQL基础 3
第1章 Oracle开发概述 3
1.1历史和背景知识 4
1.2架构 5
1.2.1两层模型 8
1.2.2三层模型 12
1.3可下载代码 13
1.4小结 13
1.4.1最佳实践回顾 13
1.4.2测验 13
第2章 PL/SQL基础 15
2.1 PL/SQL块 16
2.1.1原型 17
2.1.2基本匿名块 18
2.1.3 Hello World匿名块 19
2.1.4 Hello Somebody匿名块 20
2.1.5 Hello Somebody命名块 23
2.1.6嵌套块 24
2.2变量:类型、赋值和运算符 25
2.2.1文本数据类型 27
2.2.2日期和时间戳类型 28
2.2.3数值类型 31
2.2.4复合变量类型 34
2.3控制结构 37
2.3.1 if语句 37
2.3.2 case语句 38
2.3.3循环结构 39
2.4批量操作 47
2.5可下载代码 48
2.6小结 48
2.6.1最佳实践回顾 49
2.6.2测验 49
第3章 事务作用域 51
3.1数据库ACID测试 52
3.1.1原子性 52
3.1.2一致性 53
3.1.3隔离性 53
3.1.4持久性 54
3.2多版本并发控制 54
3.3保存点、提交和事务回滚 54
3.3.1保存点和回滚 54
3.3.2提交 59
3.4 DML锁定和隔离控制 61
3.5调用者和定义者权限 67
3.6可下载代码 68
3.7小结 69
3.7.1最佳实践回顾 69
3.7.2测验 69
第4章 错误管理 71
4.1错误类型 72
4.1.1编译时错误 72
4.1.2语义错误 77
4.2 PL/SQL工具 87
4.3可下载代码 91
4.4小结 91
4.4.1最佳实践回顾 92
4.4.2测验 92
第Ⅱ部分 PL/SQL编程 97
第5章 函数 97
5.1函数架构 98
5.1.1传值函数 98
5.1.2传址函数 99
5.1.3函数模型选择 100
5.1.4事务作用域 101
5.1.5调用参数说明 101
5.2函数开发 103
5.2.1确定性子句 104
5.2.2 PARALLEL ENABLE子句 105
5.2.3管线表子句 105
5.2.4 RESULT CACHE子句 110
5.2.5系统引用游标 112
5.2.6递归函数 114
5.2.7传址函数 114
5.3可下载代码 115
5.4小结 115
5.4.1最佳实践回顾 116
5.4.2测验 116
第6章 过程 119
6.1过程架构 120
6.1.1传值过程 120
6.1.2传址函数 121
6.1.3事务作用域 121
6.1.4调用参数说明 122
6.2过程开发 122
6.2.1传值过程 123
6.2.2传址过程 130
6.3可下载代码 131
6.4小结 132
6.4.1最佳实践回顾 132
6.4.2测验 132
第7章 集合 135
7.1标量集合 137
7.1.1 varray 137
7.1.2嵌套表 144
7.1.3关联数组 145
7.2对象类型集合 146
7.2.1 SQL嵌套表 146
7.2.2 PL/SQL嵌套表 148
7.3记录类型集合 150
7.4可下载代码 153
7.5小结 153
7.5.1最佳实践回顾 153
7.5.2测验 153
第8章 包 157
8.1包架构 158
8.1.1更大的组织 158
8.1.2程序持续性和内存驻留 159
8.1.3更大的程序规模 159
8.2包规范 159
8.3无主体包 162
8.4包主体 163
8.5 %TYPE和%ROWTYPE 166
8.6模块化编程 168
8.7重载 171
8.8增强安全性 173
8.9定义者和调用者权限 176
8.10可下载代码 179
8.11小结 179
8.11.1最佳实践回顾 179
8.11.2测验 180
第9章 触发器 183
9.1触发器架构 184
9.2触发器引发次序 186
9.3触发器类型 188
9.3.1 DML触发器 188
9.3.2 DDL触发器 192
9.3.3系统事件触发器 193
9.4安全性和Oracle细粒度审计 195
9.5分布式数据完整性 198
9.6可下载代码 201
9.7小结 201
9.7.1最佳实践回顾 201
9.7.2测验 202
第10章 对象 205
10.1基本声明、实现和使用 207
10.1.1定义并实现对象类型 207
10.1.2实现Getter和Setter 210
10.1.3实现静态方法 212
10.2比较对象 216
10.2.1 MAP函数比较 217
10.2.2 ORDER函数比较 219
10.3继承和多态 221
10.4对象集合 224
10.5可下载代码 227
10.6小结 227
10.6.1最佳实践回顾 227
10.6.2测验 228
第Ⅲ部分 PL/SQL高级编程 233
第11章 动态SQL 233
11.1本地动态SQL 234
11.1.1无绑定变量的动态语句 235
11.1.2带绑定变量的动态语句 237
11.2 DBMS SQL包 246
11.2.1无绑定变量的动态语句 246
11.2.2带绑定变量的动态语句 247
11.2.3混合并匹配NDS和DBMS SQL 250
11.3可下载代码 251
11.4小结 251
11.4.1最佳实践回顾 252
11.4.2测验 252
第12章 外部文件 255
12.1外部表架构 256
12.1.1 CSV文件 257
12.1.2位置特定文件 260
12.1.3 TSV文件 261
12.1.4转换XML为CSV文件 262
12.1.5使用Java存储库清理文件 264
12.2导入CLOB 268
12.3可下载代码 276
12.4小结 276
12.4.1最佳实践回顾 277
12.4.2测验 277
第Ⅳ部分 附录 281
附录A 包装PL/SQL 281
附录B PL/SQL层次性能分析器 287
附录C PL/Scope 299
附录D PL/SQL内置包和类型 303
附录E 测验答案 321