目录 1
前言 1
第1章 PL/SQL综述 1
1.1 SQL简介 1
1.2 PL/SQL简介 3
1.3 Oracle 10g PL/SQL新特征 5
第2章 PL/SQL开发工具 8
2.1 SQL*Plus 8
2.2 PL/SQL Developer 12
2.3 Procedure Builder 14
2.4 习题 17
第3章 PL/SQL基础 20
3.1 PL/SQL块简介 20
3.1.1 PL/SQL块结构 20
3.1.2 PL/SQL块分类 22
3.2 定义并使用变量 25
3.2.1 标量变量 26
3.2.2 复合变量 29
3.2.3 参照变量 31
3.2.4 LOB变量 32
3.2.5 非PL/SQL变量 33
3.3.1 PL/SQL词汇单元 34
3.3 编写PL/SQL代码 34
3.3.2 PL/SQL代码编写规则 37
3.4 习题 39
第4章 使用SQL语句 41
4.1 使用基本查询 41
4.1.1 简单查询语句 41
4.1.2 使用WHERE子句 48
4.1.3 使用ORDER BY子句 52
4.2 使用DML语句 55
4.2.1 插入数据 55
4.2.2 更新数据 58
4.2.3 删除数据 60
4.3 使用事务控制语句 61
4.3.1 事务和锁 61
4.3.2 提交事务 61
4.3.3 回退事务 62
4.3.4 只读事务 63
4.3.5 顺序事务 63
4.4 数据分组 64
4.4.1 分组函数 64
4.4.2 GROUP BY和HAVING 66
4.4.3 ROLLUP和CUBE 68
4.4.4 GROUPING SETS 70
4.5 连接查询 71
4.5.1 相等连接 72
4.5.2 不等连接 73
4.5.3 自连接 74
4.5.4 内连接和外连接 75
4.6 子查询 79
4.6.1 单行子查询 79
4.6.2 多行子查询 79
4.6.3 多列子查询 81
4.6.4 其他子查询 82
4.7 合并查询 85
4.8 其他复杂查询 86
4.9 习题 89
第5章 SQL函数 92
5.1 数字函数 92
5.2 字符函数 96
5.3 日期时间函数 101
5.4 转换函数 105
5.5 集合函数 111
5.6 其他单行函数 112
5.7 分组函数 121
5.8 对象函数 126
5.9 习题 127
6.1 检索单行数据 129
第6章 访问Oracle 129
6.2 操纵数据 132
6.2.1 插入数据 132
6.2.2 更新数据 133
6.2.3 删除数据 134
6.2.4 SQL游标 135
6.3 事务控制语句 136
6.4 习题 137
第7章 编写控制结构 139
7.1 条件分支语句 139
7.2 CASE语句 142
7.3 循环语句 144
7.4 顺序控制语句 146
7.5 习题 147
第8章 使用复合数据类型 149
8.1 PL/SQL记录 149
8.1.1 定义PL/SQL记录 149
8.1.2 使用PL/SQL记录 150
8.2 PL/SQL集合 153
8.2.1 索引表 153
8.2.2 嵌套表 155
8.2.3 变长数组(VARRAY) 157
8.2.4 PL/SQL记录表 158
8.2.5 多级集合 159
8.2.6 集合方法 161
8.2.7 集合赋值 164
8.2.8 比较集合 168
8.3 批量绑定 171
8.3.1 FORALL语句 172
8.3.2 BULK COLLECT子句 176
8.4 习题 177
第9章 使用游标 179
9.1 显式游标 179
9.3 使用游标更新或删除数据 184
9.2 参数游标 184
9.4 游标FOR循环 187
9.5 使用游标变量 189
9.6 使用CURSOR表达式 191
9.7 习题 192
第10章 处理例外 194
10.1 例外简介 194
10.2 处理预定义例外 196
10.3 处理非预定义例外 202
10.4 处理自定义例外 203
10.5 使用例外函数 204
10.6 PL/SQL编译警告 205
10.7 习题 208
11.1 开发过程 209
第11章 开发子程序 209
11.2 开发函数 214
11.3 管理子程序 218
11.4 习题 222
第12章 开发包 224
12.1 建立包 224
12.2 使用包重载 229
12.3 使用包构造过程 231
12.4 使用纯度级别 233
12.5 习题 235
13.1 触发器简介 237
第13章 开发触发器 237
13.2 建立DML触发器 238
13.2.1 语句触发器 239
13.2.2 行触发器 242
13.2.3 使用DML触发器 245
13.3 建立INSTEAD OF触发器 248
13.4 建立系统事件触发器 250
13.5 管理触发器 253
13.6 习题 254
第14章 开发动态SQL 256
14.1 动态SQL简介 256
14.2 处理非查询语句 257
14.3 处理多行查询语句 260
14.4 在动态SQL中使用BULK子句 262
14.5 习题 265
第15章 使用对象类型 267
15.1 对象类型简介 267
15.2 建立和使用简单对象类型 271
15.3 建立和使用复杂对象类型 282
15.3.1 对象类型嵌套 283
15.3.2 参照对象类型 286
15.3.3 对象类型继承 288
15.4 维护对象类型 290
15.5 习题 291
第16章 使用LOB对象 294
16.1 LOB简介 294
16.2 DBMS_LOB包 295
16.3 访问LOB 307
16.3.1 访问CLOB 307
16.3.2 访问BLOB 310
16.3.3 访问BFILE 312
16.4 习题 313
第17章 使用Oracle系统包 315
17.1 DBMS_OUTPUT 315
17.2 DBMS_JOB 317
17.3 DBMS_PIPE 319
17.4 DBMS_ALERT 324
17.5 DBMS_TRANSACTION 327
17.6 DBMS_SESSION 329
17.7 DBMS_ROWID 332
17.8 DBMS_RLS 335
17.9 DBMS_DDL 341
17.10 DBMS_SHARED POOL 342
17.11 DBMS_RANDOM 343
17.12 DBMS_LOGMNR 344
17.13 DBMS_FLASHBACK 347
_TOOLKIT 349
17.14 DBMS_OBFUSCATION 349
17.15 DBMS_SPACE 353
17.16 DBMS_SPACE ADMIN 356
17.17 DBMS_TTS 358
17.18 DBMS_REPAIR 359
17.19 DBMS_RESOURCE MANAGER 361
17.20 DBMS_STATS 369
17.21 UTL_FILE 378
17.22 UTL_INADDR 385
附录A 习题参考答案 386
附录B 使用SQL*Plus 424