
Oracle Database 12c PL/SQL开发指南(第7版)
《Oracle Database 12c PL/SQL开发指南(第7版)》是2015年8月1日清华大学出版社出版的图书,作者是[美] Michael McLaughlin。
基本介绍
- 书名:Oracle Database 12c PL/SQL开发指南(第7版)
- 作者:[美] Michael McLaughlin
- 译者:陶佰明 邓超 刘颖
- ISBN:9787302403647
- 定价:138元
- 出版社:清华大学出版社
- 出版时间:2015年8月1日
内容简介
《OracleDatabase12cPL/SQL开发指南(第7版)》用于开发、调试和管理健壮的资料库程式。本书包含了详细的案例以及来自于OracleACE分享的专家策略,阐述了如何获取和处理数据、编写PL/SQL语句、执行高效的查询、结合使用PHP和Java以及处理动态SQL。这本由Oracle出版的综合性指南完整地覆盖了代码的测试、安全以及面向对象编程技术。
目录
第Ⅰ部分 Oracle PL/SQL
第1章 Oracle PL/SQL程式开发概览 3
1.1 PL/SQL的历史和背景 4
1.2 Oracle开发架构 6
1.2.1 资料库 7
1.2.2 PL/SQL语言 8
1.2.3 Oracle处理架构 10
1.2.4 两层模型 11
1.2.5 n层模型 12
1.3 本章小结 13
1.4 精熟测验 13
第2章 新特性 15
2.1 SQL新特性 16
2.1.1 用数据目录DIRECTORY限定LIBRARY对象 16
2.1.2 使用有效时间(VT)来定义表 17
2.1.3 增强的Oracle原生LEFT OUTER JOIN语法 18
2.1.4 基于序列的列的默认值 18
2.1.5 显式NULL插入的默认值 19
2.1.6 标识列 20
2.1.7 STRING和RAW类型大小限制的增加 21
2.1.8 将SQL语句的结果传递给外部程式 21
2.1.9 查询行限制和偏移的原生SQL支持 23
2.1.10 MySQL应用程式的Oracle资料库驱动程式 26
2.1.11 SQL CROSS APPLY、OUTER APPLY和LATERAL 26
2.1.12 BEQUEATH CURRENT_USER视图 28
2.2 PL/SQL新特性 28
2.2.1 调用者许可权函式的快取 29
2.2.2 添加PL/SQL程式单元调用者到白名单 29
2.2.3 PL/SQL类型的原生客户端API支持 30
2.2.4 新的PL/SQL包utl_call_stack 30
2.2.5 dbms_utility包添加了expand_sql_txt子程式 30
2.2.6 dbms_sql包为parse过程添加了新的模式 32
2.2.7 SQL WITH子句中的PL/SQL函式 32
2.2.8 SQL中允许PL/SQL特定的数据类型 33
2.2.9 隐式的REF CURSOR参数绑定 36
2.3 支持脚本 36
2.4 本章小结 36
2.5 精熟测验 36
第3章 PL/SQL基础知识 39
3.1 块结构 40
3.1.1 执行块 40
3.1.2 基本块结构 41
3.1.3 声明块 43
3.1.4 异常块 44
3.2 块中变数的行为 45
3.2.1 匿名块 45
3.2.2 嵌套匿名块 49
3.2.3 局部命名块 51
3.2.4 存储命名块 54
3.3 基本标量和複合数据类型 56
3.3.1 标量数据类型 56
3.3.2 属性和表的锚定 58
3.3.3 複合数据类型 60
3.4 控制结构 72
3.4.1 条件结构 72
3.4.2 叠代结构 74
3.5 异常 81
3.5.1 用户自定义异常 82
3.5.2 动态的用户自定义异常 84
3.6 批量操作 84
3.7 函式、过程和包 86
3.7.1 函式 87
3.7.2 过程 88
3.7.3 包 90
3.8 事务作用域 94
3.8.1 单事务作用域 95
3.8.2 多事务作用域 96
3.9 资料库触发器 96
3.10 本章小结 97
3.11 精熟测验 97
第4章 语言基本知识 99
4.1 辞彙单元 99
4.1.1 分隔设定 100
4.1.2 标识符 103
4.1.3 字面值 105
4.1.4 注释 106
4.2 变数和数据类型 107
4.2.1 变数数据类型 108
4.2.2 标量数据类型 111
4.2.3 大对象 125
4.2.4 複合数据类型 126
4.2.5 系统引用游标 130
4.3 本章小结 132
4.4 精熟测验 132
第5章 控制结构 134
5.1 条件语句 135
5.1.1 IF语句 141
5.1.2 CASE语句 145
5.1.3 条件编译语句 147
5.2 叠代语句 150
5.2.1 简单循环语句 150
5.2.2 FOR循环语句 156
5.2.3 WHILE循环语句 158
5.3 游标结构 161
5.3.1 隐式游标 162
5.3.2 显式游标 166
5.4 批语句 177
5.4.1 BULK COLLECT INTO
语句 178
5.4.2 FORALL语句 182
5.5 支持脚本 187
5.6 本章小结 187
5.7 精熟测验 187
第6章 集合 189
6.1 集合介绍 190
6.2 对象类型:变长数组和
表集合 192
6.2.1 变长数组集合 192
6.2.2 表集合 195
6.3 关联数组 209
6.4 Oracle集合API 216
6.4.1 COUNT方法 218
6.4.2 DELETE方法 219
6.4.3 EXISTS方法 220
6.4.4 EXTEND方法 221
6.4.5 FIRST方法 222
6.4.6 LAST方法 222
6.4.7 LIMIT方法 223
6.4.8 NEXT方法 223
6.4.9 PRIOR方法 224
6.4.10 TRIM方法 224
6.5 支持脚本 226
6.6 本章小结 226
6.7 精熟测验 226
第7章 错误管理 228
7.1 异常类型和作用域 229
7.1.1 编译时错误 230
7.1.2 运行时错误 232
7.2 异常管理内置函式 238
7.3 用户定义的异常 240
7.3.1 声明用户定义的异常 240
7.3.2 动态的用户定义的异常 242
7.4 异常堆叠函式 245
7.5 支持脚本 250
7.6 本章小结 250
7.7 精熟测验 251
第Ⅱ部分 PL/SQL编程
第8章 函式和过程 255
8.1 函式和过程架构 256
8.2 事务作用域 262
8.2.1 调用子例程 263
8.2.2 位置表示法 264
8.2.3 命名表示法 264
8.2.4 混合表示法 264
8.2.5 排除表示法 264
8.2.6 SQL调用表示法 265
8.3 函式 265
8.3.1 函式模型选择 267
8.3.2 创建选项 267
8.3.3 按值传递函式 279
8.3.4 按引用传递函式 291
8.4 过程 294
8.4.1 按值传递过程 295
8.4.2 按引用传递过程 297
8.5 支持脚本 299
8.6 本章小结 300
8.7 精熟测验 300
第9章 包 302
9.1 包架构 303
9.2 包规範 308
9.2.1 原型特性 309
9.2.2 连续可重用预编译器指令 311
9.2.3 变数 312
9.2.4 类型 314
9.2.5 组件:函式与过程 316
9.3 包主体 318
9.3.1 原型特性 318
9.3.2 变数 320
9.3.3 类型 322
9.3.4 组件:函式与过程 323
9.4 定义者与调用者许可权模型 326
9.5 管理资料库目录中的包 329
9.5.1 查找、验证和描述包 329
9.5.2 检查依赖关係 330
9.5.3 比较验证方法:时间戳与
签名 331
9.6 本章小结 332
9.7 精熟测验 332
第10章 大对象 334
10.1 使用内部存储的LOB
类型 335
10.1.1 低于32K的LOB
赋值 335
10.1.2 高于32K的LOB赋值 337
10.2 将档案读入内部存储的列 345
10.2.1 将本地档案读入CLOB
或NCLOB列 346
10.2.2 将本地档案读入BLOB列 348
10.2.3 通过Web页面处理LOB 351
10.3 使用二进制档案(BFILE) 358
10.3.1 创建和使用虚拟目录 359
10.3.2 读取规範路径名与档案名称 365
10.4 了解dbms_lob包 371
10.4.1 包常量 371
10.4.2 包异常 373
10.4.3 打开与关闭方法 373
10.4.4 操作方法 374
10.4.5 内省方法 380
10.4.6 BFILE方法 384
10.4.7 临时LOB方法 385
10.4.8 安全连结方法 387
10.5 支持脚本 390
10.5.1 从LONG转换为CLOB的
脚本 390
10.5.2 管理来自于档案系统的
LOB 390
10.5.3 通过Web管理CLOB和
BLOB LOB 390
10.5.4 通过Web管理
BFILE LOB 390
10.6 本章小结 391
10.7 精熟测验 391
第11章 对象类型 393
11.1 对象基础知识 396
11.1.1 声明对象类型 396
11.1.2 实现对象主体 399
11.1.3 对象类型白名单 403
11.1.4 getter和setter 404
11.1.5 静态成员方法 406
11.1.6 比较对象 408
11.2 继承和多态 415
11.2.1 声明子类 416
11.2.2 实现子类 417
11.2.3 类型演变 421
11.3 实现对象类型集合 422
11.3.1 声明对象类型集合 422
11.3.2 实现对象类型集合 423
11.4 支持脚本 426
11.5 本章小结 426
11.6 精熟测验 426
第12章 触发器 429
12.1 触发器简介 430
12.2 资料库触发器架构 432
12.3 数据定义语言触发器 435
12.3.1 事件属性函式 437
12.3.2 构建DDL触发器 448
12.4 数据操作语言触发器 450
12.4.1 语句级触发器 451
12.4.2 行级触发器 453
12.5 複合触发器 460
12.6 Instead of触发器 464
12.7 系统和资料库事件触发器 468
12.8 触发器限制 470
12.8.1 最大触发器尺寸 470
12.8.2 SQL语句 470
12.8.3 LONG和LONG RAW
数据类型 471
12.8.4 变异表 471
12.8.5 系统触发器 472
12.9 支持脚本 473
12.10 本章小结 473
12.11 精熟测验 473
第13章 动态SQL 475
13.1 动态SQL架构 476
13.2 本地动态SQL(NDS) 477
13.2.1 动态语句 478
13.2.2 带输入的动态语句 481
13.2.3 带输入和输出的动态语句 483
13.2.4 带未知数量的输入的
动态语句 486
13.3 dbms_sql包 488
13.3.1 动态语句 489
13.3.2 带输入变数的动态语句 492
13.3.3 带输入变数和固定输出的
动态语句 494
13.3.4 带输入和输出变数的
动态语句 498
13.3.5 dbms_sql包定义 503
13.4 支持脚本 516
13.5 本章小结 517
13.6 精熟测验 517
第Ⅲ部分 附录和术语表
附录A Oracle资料库入门 521
A.1 Oracle资料库架构 522
A.2 启动和停止Oracle
Database 12c伺服器 528
A.2.1 UNIX或Linux操作 529
A.2.2 Microsoft Windows操作 533
A.3 启动和停止Oracle侦听器 534
A.4 多版本并发控制 539
A.4.1 数据事务 540
A.4.2 DML锁定和隔离控制 542
A.5 定义者许可权和调用者许可权 543
A.5.1 定义者许可权 544
A.5.2 调用者许可权 544
A.6 SQL互动和批处理 545
A.6.1 SQL*Plus命令行界面 545
A.6.2 Oracle SQL Developer界面 564
A.7 资料库管理员 570
A.7.1 配置用户 570
A.7.2 使用资料库约束 577
A.7.3 安全加固 586
A.7.4 数据管理 595
A.8 SQL调优 597
A.8.1 EXPLAIN PLAN语句 598
A.8.2 DBMS_XPLAN包 599
A.9 SQL跟蹤 603
A.9.1 跟蹤会话状态 603
A.9.2 将原始跟蹤档案转换为
可读跟蹤档案 605
A.10 本附录小结 606
附录B SQL入门 607
B.1 Oracle SQL数据类型 610
B.2 数据定义语言(DDL) 614
B.2.1 CREATE语句 615
B.2.2 ALTER语句 675
B.2.3 RENAME语句 691
B.2.4 DROP语句 691
B.2.5 TRUNCATE语句 694
B.2.6 COMMENT语句 694
B.3 数据管理语言(DML) 694
B.3.1 符合ACID的事务 695
B.3.2 INSERT语句 698
B.3.3 UPDATE语句 712
B.3.4 DELETE语句 724
B.3.5 MERGE语句 728
B.4 事务控制语言(TCL) 735
B.5 查询:SELECT语句 736
B.5.1 返回列或者返回列运算结果
的查询 738
B.5.2 聚合查询 751
B.5.3 选择性返回列或结果的
查询 756
B.5.4 联接结果 765
B.5.5 数据的联接 767
B.5.6 集合的联接 775
B.6 本附录小结 778
附录C SQL内置函式 779
C.1 字元函式 780
C.1.1 ASCII函式 780
C.1.2 ASCIISTR函式 780
C.1.3 CHR函式 781
C.1.4 CONCAT函式 781
C.1.5 INITCAP函式 782
C.1.6 INSTR函式 782
C.1.7 LENGTH函式 783
C.1.8 LOWER函式 783
C.1.9 LPAD函式 784
C.1.10 LTRIM函式 784
C.1.11 REPLACE函式 785
C.1.12 REVERSE函式 785
C.1.13 RPAD函式 785
C.1.14 RTRIM函式 786
C.1.15 UPPER函式 786
C.2 数据类型转换函式 787
C.2.1 CAST函式 787
C.2.2 CONVERT函式 789
C.2.3 TO_CHAR函式 790
C.2.4 TO_CLOB函式 792
C.2.5 TO_DATE函式 792
C.2.6 TO_LOB函式 793
C.2.7 TO_NCHAR函式 794
C.2.8 TO_NCLOB函式 795
C.2.9 TO_NUMBER函式 795
C.3 日期-时间转换函式 796
C.3.1 ADD_MONTHS函式 796
C.3.2 CURRENT_DATE函式 796
C.3.3 CURRENT_TIMESTAMP
函式 796
C.3.4 DBTIMEZONE函式 797
C.3.5 EXTRACT函式 797
C.3.6 FROM_TZ函式 798
C.3.7 LAST_DAY函式 798
C.3.8 LOCALTIMESTAMP函式 799
C.3.9 MONTHS_BETWEEN函式 799
C.3.10 NEW_TIME函式 799
C.3.11 ROUND函式 800
C.3.12 SYSDATE函式 801
C.3.13 SYSTIMESTAMP函式 801
C.3.14 TO_CHAR(date)函式 801
C.3.15 TO_DSINTERVAL函式 802
C.3.16 TO_TIMESTAMP函式 803
C.3.17 TO_TIMESTAMP_TZ函式 803
C.3.18 TO_YMINTERVAL函式 804
C.3.19 TRUNC(date)函式 804
C.3.20 TZ_OFFSET函式 804
C.4 集合管理函式 805
C.4.1 CARDINALITY函式 805
C.4.2 COLLECT函式 805
C.4.3 POWERMULTISET函式 809
C.4.4 POWERMULTISET_BY_
CARDINALITY函式 809
C.4.5 SET函式 810
C.5 集合运算符 810
C.5.1 CARDINALITY运算符 812
C.5.2 EMPTY运算符 812
C.5.3 MULTISET运算符 812
C.5.4 MULTISET EXCEPT
运算符 813
C.5.5 MULTISET INTERSECT
运算符 814
C.5.6 MULTISET UNION运算符 814
C.5.7 SET运算符 815
C.5.8 SUBMULTISET OF运算符 816
C.6 数字函式 816
C.6.1 CEIL函式 817
C.6.2 FLOOR函式 817
C.6.3 MOD函式 817
C.6.4 POWER函式 819
C.6.5 REMAINDER函式 820
C.6.6 ROUND函式 821
C.7 错误报告函式 821
C.7.1 SQLCODE函式 821
C.7.2 SQLERRM函式 822
C.8 杂项函式 823
C.8.1 BFILENAME函式 824
C.8.2 COALESCE函式 826
C.8.3 DECODE函式 826
C.8.4 DUMP函式 827
C.8.5 EMPTY_BLOB函式 828
C.8.6 EMPTY_CLOB函式 830
C.8.7 GREATEST函式 831
C.8.8 LEAST函式 833
C.8.9 NANVL函式 834
C.8.10 NULLIF函式 835
C.8.11 NVL函式 836
C.8.12 SYS_CONTEXT函式 836
C.8.13 TABLE函式 839
C.8.14 TREAT函式 842
C.8.15 USERENV函式 843
C.8.16 VSIZE函式 844
C.9 本附录小结 844
附录D PL/SQL内置程式包和类型 845
D.1 Oracle Database 11g和12c的
新程式包 846
D.2 程式包使用示例 852
D.2.1 DBMS_APPLICATION_INFO
示例 853
D.2.2 DBMS_COMPARISON 858
D.2.3 DBMS_CRYPTO 863
D.2.4 DBMS_FGA 866
D.2.5 案例研究:查询工具 867
D.3 支持脚本 874
D.4 本附录小结 874
附录E 正则表达式入门 875
E.1 正则表达式简介 876
E.1.1 字元类 876
E.1.2 校準类 880
E.1.3 元字元 880
E.1.4 元序列 880
E.1.5 字面值 881
E.2 正则表达式实现 881
E.2.1 REGEXP_COUNT函式 882
E.2.2 REGEXP_INSTR函式 885
E.2.3 REGEXP_LIKE函式 886
E.2.4 REGEXP_REPLACE函式 887
E.2.5 REGEXP_SUBSTR函式 889
E.3 支持脚本 890
E.4 本附录小结 890
附录F 包装PL/SQL代码入门 891
F.1 包装PL/SQL的限制 892
F.1.1 PL/SQL的wrap实用程式的
局限性 892
F.1.2 DBMS_DDL.WRAP函式的
限制 892
F.2 使用wrap命令行实用程式 893
F.3 使用DBMS_DDL命令行
实用程式 893
F.3.1 WRAP函式 893
F.3.2 CREATE_WRAPPED过程 898
F.4 本附录小结 899
附录G PL/SQL分层的配置
档案入门 900
G.1 配置架构 901
G.2 收集配置档案数据 902
G.3 配置档案数据 905
G.3.1 读取原始输出 905
G.3.2 定义PL/SQL配置档案表 907
G.3.3 查询分析数据 909
G.4 使用plshprof命令行
实用程式 910
G.5 支持脚本 912
G.6 本附录小结 912
附录H PL/SQL保留字和关键字 913
附录I 精熟测验答案 927
术语表 951