Oracle PL/SQL实例精解(原书第6版)

Oracle PL/SQL实例精解(原书第6版)
作 者: 本杰罗森维格 艾琳娜·拉希莫夫
出版社: 机械工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  艾琳娜·拉希莫夫(Elena Rakhimov)拥有超过25年的数据库架构和开发经验,从非营利组织到华尔街再到她目前任职的知名咨询公司,曾服务于众多的企业和商业机构。此外她还在哥伦比亚大学备受推崇的计算机技术与应用项目中讲授关系数据库编程。

内容简介

本书根据PL/SQL的新版本进行了全面更新,涵盖从基础语法、程序控制到最新的优化和调优增强等方面的知识,通过真实的实验、大量的示例讲解了PL/SQL技能,是一本逐步分解的、详尽的PL/SQL编程教程。读者可以按照本书的步骤一步一步地完成每一个关键任务,掌握Oracle 21c PL/SQL编程技术,深度探索PL/SQL编程技术及最佳实践。本书既适合新手数据库开发人员和DBA阅读,也适合有一定经验的从业人员阅读。

图书目录

目  录  Contents

译者序

前 言

致 谢

Oracle 21c PL/SQL新特性简介

第1章 PL/SQL概念1

1.1 实验1:PL/SQL架构1

1.1.1 PL/SQL架构2

1.1.2 PL/SQL块结构4

1.1.3 PL/SQL是如何执行的7

1.2 实验2:PL/SQL开发环境7

1.2.1 初步掌握SQL Developer8

1.2.2 初步掌握SQL*Plus9

1.2.3 执行PL/SQL脚本11

1.3 实验3:PL/SQL基础知识14

1.3.1 DBMS_OUTPUT.PUT_LINE

   语句14

1.3.2 替代变量的功能16

本章小结19

第2章 PL/SQL语言的基础知识21

2.1 实验1:PL/SQL语言的各种组件21

2.1.1 PL/SQL变量22

2.1.2 PL/SQL保留字24

2.1.3 分隔符25

2.1.4 PL/SQL中的文字25

2.2 实验2:锚定数据类型26

2.3 实验3:变量、块、嵌套块和

   标签的作用域27

2.3.1 变量的作用域28

2.3.2 嵌套块和标签28

本章小结30

第3章 PL/SQL中的SQL语句31

3.1 实验1:PL/SQL中的SQL语句31

3.1.1 使用SELECT INTO语句对

   变量进行初始化31

3.1.2 在PL/SQL块中使用DML语句33

3.1.3 在PL/SQL块中使用序列34

3.2 实验2:在PL/SQL中使用

   事务控制语句35

3.2.1 COMMIT、ROLLBACK和

   SAVEPOINT语句35

3.2.2 SET TRANSACTION语句38

本章小结39

第4章 条件控制:IF语句40

4.1 实验1:IF语句40

4.1.1 IF-THEN语句41

4.1.2 IF-THEN-ELSE语句42

4.2 实验2:ELSIF语句44

4.3 实验3:嵌套的IF语句48

本章小结50

第5章 条件控制:CASE语句52

5.1 实验1:CASE语句52

5.1.1 简单CASE语句52

5.1.2 搜索CASE语句54

5.2 实验2:CASE表达式59

5.3 实验3:NULLIF和COALESCE

   函数63

5.3.1 NULLIF函数63

5.3.2 COALESCE函数64

本章小结67

第6章 迭代控制:第一部分68

6.1 实验1:简单循环68

6.1.1 EXIT语句69

6.1.2 EXIT WHEN语句72

6.2 实验2:WHILE循环73

6.2.1 使用WHILE循环73

6.2.2 提前终止WHILE循环76

6.3 实验3:数字型FOR循环78

6.3.1 在循环中使用IN选项79

6.3.2 在循环中使用REVERSE选项82

6.3.3 在循环中使用迭代控制选项82

6.3.4 提前终止数字型FOR循环86

本章小结87

第7章 迭代控制:第二部分88

7.1 实验1:CONTINUE语句88

7.1.1 使用CONTINUE语句88

7.1.2 使用CONTINUE WHEN语句91

7.2 实验2:嵌套循环94

7.2.1 使用嵌套循环94

7.2.2 使用循环标签95

本章小结97

第8章 错误处理和内置异常98

8.1 实验1:错误处理98

8.2 实验2:内置异常100

本章小结105

第9章 异常106

9.1 实验1:异常的作用域106

9.2 实验2:用户定义的异常109

9.3 实验3:异常的传播113

9.3.1 异常如何传播113

9.3.2 重新触发异常117

本章小结118

第10章 异常:高级概念119

10.1 实验1:RAISE_APPLICATION_

   ERROR过程119

10.2 实验2:EXCEPTION_INIT指令122

10.3 实验3:SQLCODE和SQLERRM

   函数124

本章小结126

第11章 游标127

11.1 实验1:游标的类型127

11.1.1 隐式游标128

11.1.2 显式游标130

11.2 实验2:基于表和基于游标

   的记录136

11.2.1 基于表的记录136

11.2.2 基于游标的记录138

11.3 实验3:游标型FOR循环139

11.4 实验4:嵌套的游标141

本章小结143

第12章 高级游标144

12.1 实验1:参数化游标144

12.2 实验2:游标变量和游标表达式149

12.2.1 游标变量149

12.2.2 游标表达式155

12.3 实验3:FOR UPDATE游标157

本章小结160

第13章 触发器161

13.1 实验1:什么是触发器161

13.1.1 数据库触发器161

13.1.2 BEFORE触发器164

13.1.3 AFTER触发器168

13.1.4 自治事务169

13.2 实验2:触发器的类型171

13.2.1 行级触发器和语句级触发器171

13.2.2 INSTEAD OF触发器172

本章小结176

第14章 变异表和组合触发器177

14.1 实验1:变异表177

14.2 实验2:组合触发器179

本章小结183

第15章 集合184

15.1 实验1:PL/SQL表184

15.1.1 关联数组185

15.1.2 嵌套表187

15.1.3 集合方法190

15.2 实验2:变长数组193

15.3 实验3:多维集合197

15.4 实验4:集合迭代控制和限定

    表达式199

15.4.1 集合迭代控制199

15.4.2 限定表达式202

本章小结208

第16章 记录209

16.1 实验1:用户定义的记录209

16.1.1 用户定义的记录209

16.1.2 在记录中使用限定表达式211

16.1.3 记录的兼容性212

16.2 实验2:嵌套记录215

16.3 实验3:记录集合217

本章小结220

第17章 本地动态SQL221

17.1 实验1:EXECUTE IMMEDIATE

   语句221

17.2 实验2:OPEN FOR、FETCH和

   CLOSE语句230

本章小结234

第18章 批量SQL235

18.1 实验1:FORALL语句235

18.1.1 FORALL语句236

18.1.2 SAVE EXCEPTIONS选项239

18.1.3 INDICES OF选项241

18.1.4 VALUES OF选项??242

18.2 实验2:BULK COLLECT子句244

18.3 实验3:在SQL语句中使用

   绑定集合变量252

18.3.1 在EXECUTE IMMEDIATE

    语句中使用绑定集合变量252

18.3.2 在OPEN FOR、FETCH和

    CLOSE语句中使用绑定集

    合变量258

本章小结262

第19章 过程263

19.1 实验1:创建嵌套过程263

19.1.1 嵌套过程264

19.1.2 参数模式265

19.1.3 前向声明269

19.2 实验2:创建独立过程270

本章小结273

第20章 函数274

20.1 实验1:创建嵌套函数274

20.2 实验2:创建独立函数278

本章小结282

第21章 包283

21.1 实验1:创建包283

21.1.1 创建包规范284

21.1.2 创建包体285

21.2 实验2:包的实例化和初始化289

21.2.1 包的实例化和初始化290

21.2.2 包的运行状态291

21.3 实验3:指定SERIALLY_

   REUSABLE选项的包292

本章小结296

第22章 存储代码中涉及的

     高级概念297

22.1 实验1:子程序重载297

22.2 实验2:结果集缓存的函数303

22.3 实验3:在SQL语句中调用

   PL/SQL函数306

22.3.1 在SQL语句中调用函数306

22.3.2 使用管道表函数307

22.3.3 使用SQL宏309

本章小结316

第23章 Oracle对象类型317

23.1 实验1:对象类型317

23.1.1 创建对象类型319

23.1.2 对象类型与集合的嵌套

    使用322

23.2 实验2:对象类型方法325

23.2.1 使用构造函数方法326

23.2.2 使用成员方法328

23.2.3 使用静态方法329

23.2.4 比较对象330

本章小结334

第24章 在表中存储对象类型335

24.1 实验1:在关系表中存储

   对象类型335

24.2 实验2:在对象表中存储

   对象类型339

24.3 实验3:对象类型的演化340

本章小结345

第25章 使用DBMS_SQL包

     构建动态SQL346

25.1 实验1:使用DBMS_SQL包

   生成动态SQL346

本章小结354

附录A PL/SQL格式化规则355

附录B STUDENT数据库模式358