《Oracle PL/SQL实例精解》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)本杰明·罗森维格(Benjamin Rosenzweig),(加)艾琳娜·拉希莫夫(Elena Rakhimov)著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2016
  • ISBN:9787111528876
  • 页数:372 页
图书介绍:本书通过实际的实验、示例和项目来讲解你所需的全部PL/SQL技能,它涵盖从基础语法、程序控制到最新的优化和安全增强等方面的知识。读者循序渐进地学习每个关键任务,自己就能掌握当今最有价值的Oracle 12c的PL/SQL编程技术。本书的方法完全反映了作者在哥伦比亚大学给专业人员讲授PL/SQL的广受好评的经验。数据库开发的新手和DBA可以通过学习本书快速获得成效。有经验的PL/SQL程序员会发现本书是很好的Oracle 12c的解决方案参考。

第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是如何执行的 6

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

1.2.1 初步掌握SQL Developer的使用 8

1.2.2 初步掌握SQL*Plus的使用 10

1.2.3 执行PL/SQL脚本 11

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

1.3.1 DBMS_OUTPUT.PUT_LINE语句 14

1.3.2 替代变量功能 17

1.4 总结 21

第2章 PL/SQL语言基础 22

2.1 实验:PL/SQL编程基础 22

2.1.1 PL/SQL语言组件 23

2.1.2 PL/SQL变量 23

2.1.3 PL/SQL保留字 26

2.1.4 PL/SQL中的标识符 26

2.1.5 挂靠的数据类型 27

2.1.6 声明和初始化变量 29

2.1.7 块作用域、嵌套块和标签 32

2.2 总结 34

第3章 在PL/SQL中的SQL 35

3.1 实验1:在PL/SQL中的DML语句 35

3.1.1 使用SELECT INTO初始化变量 36

3.1.2 使用变量初始化的SELECT INTO语法 37

3.1.3 在PL/SQL块中使用DML 38

3.1.4 在PL/SQL块中使用序列 39

3.2 实验2:在PL/SQL中的事务控制 40

3.2.1 使用COMMIT、ROLLBACK和SAVEPOINT 40

3.2.2 将DML和事务控制相结合 43

3.3 总结 45

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

4.1 实验1:IF语句 46

4.1.1 IF-THEN语句 47

4.1.2 IF-THEN-ELSE语句 48

4.2 实验2:ELSIF语句 50

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

4.4 总结 56

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

5.1 实验1:CASE语句 57

5.1.1 CASE语句 57

5.1.2 搜索CASE语句 59

5.2 实验2:CASE表达式 64

5.3 实验3:NULLIF和COALESCE函数 67

5.3.1 NULLIF函数 67

5.3.2 COALESCE函数 69

5.4 总结 71

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

6.1 实验1:简单循环 72

6.1.1 EXIT语句 73

6.1.2 EXIT WHEN语句 76

6.2 实验2:WHILE循环 77

6.2.1 使用WHILE循环 77

6.2.2 提前终止WHILE循环 80

6.3 实验3:数字FOR循环 81

6.3.1 在循环中使用IN选项 82

6.3.2 在循环中使用REVERSE选项 84

6.3.3 提前终止数字FOR循环 84

6.4 总结 85

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

7.1 实验1:CONTINUE语句 86

7.1.1 使用CONTINUE语句 86

7.1.2 CONTINUE WHEN语句 89

7.2 实验2:嵌套循环 92

7.2.1 使用嵌套循环 92

7.2.2 使用循环标签 93

7.3 总结 95

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

8.1 实验1:处理错误 96

8.2 实验2:内置异常 98

8.3 总结 103

第9章 异常 104

9.1 实验1:异常作用域 104

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

9.3 实验3:异常传播 111

9.4 总结 116

第10章 异常:高级概念 117

10.1 实验1:RAISE_APPLICATION_ERROR 117

10.2 实验2:EXCEPTION_INIT编译指示 120

10.3 实验3:SQLCODE和SQLERRM 122

10.4 总结 124

第11章 游标简介 125

11.1 实验1:游标类型 125

11.1.1 使用隐式游标 126

11.1.2 使用显式游标 127

11.2 实验2:游标循环 130

11.2.1 处理显式游标 130

11.2.2 使用用户定义的记录 133

11.2.3 使用游标属性 134

11.3 实验3:游标FOR循环 138

11.4 实验4:嵌套游标 139

11.5 总结 143

第12章 高级游标 144

12.1 实验1:参数化游标 144

12.2 实验2:复杂的嵌套游标 145

12.3 实验3:FOR UPDATE和WHERE CURRENT游标 147

12.3.1 FOR UPDATE游标 147

12.3.2 游标中的FOR UPDATE OF 149

12.3.3 游标中的WHERE CURRENT OF 149

12.4 总结 150

第13章 触发器 151

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

13.1.1 数据库触发器 151

13.1.2 BEFORE触发器 154

13.1.3 AFTER触发器 159

13.1.4 自治事务 160

13.2 实验2:触发器类型 162

13.2.1 行触发器和语句触发器 162

13.2.2 INSTEAD OF触发器 163

13.3 总结 167

第14章 变异表和复合触发器 168

14.1 实验1:变异表 168

14.1.1 什么是变异表 168

14.1.2 解决变异表问题 170

14.2 实验2:复合触发器 172

14.2.1 什么是复合触发器 172

14.2.2 解决变异表问题的复合触发器 174

14.3 总结 177

第15章 集合 178

15.1 实验1:PL/SQL表 178

15.1.1 关联数组 179

15.1.2 嵌套表 181

15.1.3 集合方法 184

15.2 实验2:变长数组 187

15.3 实验3:多级集合 190

15.4 总结 192

第16章 记录 193

16.1 实验1:记录类型 193

16.1.1 基于表和基于游标的记录 194

16.1.2 用户定义的记录 196

16.1.3 记录兼容性 197

16.2 实验2:嵌套记录 199

16.3 实验3:记录集合 202

16.4 总结 205

第17章 本地动态SQL 206

17.1 实验1:EXECUTE IMMEDIATE语句 206

17.1.1 使用EXECUTE IMMEDIATE语句 207

17.1.2 如何避免使用EXECUTE IMMEDIATE的常见ORA错误 209

17.2 实验2:OPEN-FOR、FETCH和CLOSE语句 216

17.2.1 打开游标 216

17.2.2 从游标中读取 217

17.2.3 关闭游标 217

17.3 总结 223

第18章 批量SQL 224

18.1 实验1:FORALL语句 224

18.1.1 使用FORALL语句 225

18.1.2 SAVE EXCEPTIONS选项 228

18.1.3 INDICES OF选项 230

18.1.4 VALUES OF选项 230

18.2 实验2:BULK COLLECT子句 232

18.3 实验3:在SQL语句中绑定集合 239

18.3.1 将集合与EXECUTE IMMEDIATE语句绑定 240

18.3.2 将集合与OPEN-FOR、FETCH和CLOSE语句绑定 245

18.4 总结 248

第19章 过程 249

19.1 模块化代码的好处 249

19.1.1 块结构 250

19.1.2 匿名块 250

19.2 实验1:创建过程 250

19.2.1 实践创建过程的语法 251

19.2.2 查询数据字典来获取过程的信息 252

19.3 实验2:传递的过程参数IN和OUT 253

19.4 总结 255

第20章 函数 256

20.1 实验1:创建函数 256

20.1.1 创建存储函数 257

20.1.2 使用函数 259

20.2 实验2:在SQL语句中使用函数 260

20.2.1 在SQL语句中调用函数 261

20.2.2 编写复杂函数 261

20.3 实验3:在SQL中优化函数执行 262

20.3.1 使用WITH子句定义函数 262

20.3.2 使用UDF编译指示创建函数 263

20.4 总结 263

第21章 包 264

21.1 实验1:创建包 264

21.1.1 创建包规范 265

21.1.2 创建包体 267

21.1.3 调用已存储的包 269

21.1.4 创建私有对象 270

21.2 实验2:游标变量 274

21.3 实验3:扩展包 281

21.4 实验4:包的实例化和初始化 292

21.5 实验5:SERIALLY_REUSABLE包 294

21.6 总结 296

第22章 存储代码 297

22.1 实验:收集存储代码的相关信息 297

22.1.1 从数据字典获取存储代码的信息 297

22.1.2 重载模块 300

22.2 总结 305

第23章 Oracle对象类型 306

23.1 实验1:对象类型 306

23.1.1 创建对象类型 308

23.1.2 使用对象类型与集合 310

23.2 实验2:对象类型的方法 314

23.2.1 构造方法 314

23.2.2 成员方法 316

23.2.3 静态方法 317

23.2.4 比较对象 318

23.3 总结 322

第24章 Oracle提供的包 323

24.1 实验1:利用Oracle提供的包扩展功能 323

24.1.1 在PL/SQL中利用UTL_FILE访问文件 324

24.1.2 利用DBMS_JOB调度作业 327

24.1.3 利用DBMS_XPLAN生成解释计划 329

24.1.4 利用DBMS_SQL产生隐式语句结果 333

24.2 实验2:利用Oracle提供的包报告错误 334

24.2.1 利用DBMS_UTILITY包报告错误 334

24.2.2 利用UTL_CALL_STACK包报告错误 338

24.3 总结 343

第25章 优化PL/SQL 344

25.1 实验1:PL/SQL调优工具 344

25.1.1 PL/SQL剖析器API 345

25.1.2 跟踪API 345

25.1.3 PL/SQL层次式剖析器 348

25.2 实验2:PL/SQL优化级别 349

25.3 实验3:子程序内联 355

25.4 总结 363

附录A PL/SQL格式化准则 364

附录B 学生数据库模式 368