• Oracle PL/SQL程序设计(下册)
  • Oracle PL/SQL程序设计(下册)
  • Oracle PL/SQL程序设计(下册)
21年品牌 40万+商家 超1.5亿件商品

Oracle PL/SQL程序设计(下册)

5 九五品

仅1件

北京丰台
认证卖家担保交易快速发货售后保障

作者[美]Steven Feuerstein;Bill Pribyl

出版社人民邮电出版社

出版时间2011-07

版次1

装帧平装

上书时间2021-04-12

   商品详情   

品相描述:九五品
图书标准信息
  • 作者 [美]Steven Feuerstein;Bill Pribyl
  • 出版社 人民邮电出版社
  • 出版时间 2011-07
  • 版次 1
  • ISBN 9787115231437
  • 定价 149.00元
  • 装帧 平装
  • 开本 16开
  • 纸张 胶版纸
  • 页数 1108页
  • 字数 1489千字
  • 原版书名 Oracle PL/SQL Programming
【内容简介】
  《Oracle PL/SQL程序设计(第5版)》基于Oracle数据库11g,从PL/SQL编程、PL/SQL程序结构、PL/SQL程序数据、PL/SQL中的SQL、PL/SQL应用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。本书能够帮助你充分利用PL/SQL来解决数据库开发中遇到的各种问题,引导你掌握各种构建应用的技巧和技术,以便使你编写出高效、可维护的代码。《Oracle PL/SQL程序设计(第5版)》不但介绍了大量的Oracle 11g的PL/SQL新性能,还提供了许多优化PL/SQL性能的新方法。  《Oracle PL/SQL程序设计(第5版)》结构清晰,示例丰富,实践性强,适用于Oracle数据库开发人员、Oracle数据库管理员等相关数据库从业人员,也可以作为各大、中专院校相关专业师生的参考用书和相关培训机构的培训教材。
【作者简介】
Steven Feuerstein是全世界公认的Oracle PL/SQL语言领域的专家领袖,他已经撰写了10本关于PL/SQL的书籍,包括《Oracle PL/SQL 编程》和《Oracle PL/SQL最佳实践》(均由O’Reilly出版)。Steven从1980年就已经开始从事软件开发方面的工作,在Oracle工作了5年时间(1987~1992),从2001年1月起作为Quest软件的PL/SQL的传道者。他本身也是一名Oracle ACE Director,并且定期为Oracle Magazine杂志撰稿,该杂志在2002年和2006年将他评为当年的年度PL/SQL开发者。他还是第一位获得ODTUG’s终生成就奖(2009)殊荣的人。自从2005年开始,他开始将聚焦于如何改善对PL/SQL程序的测试上,把全部精力放在Quest Code Tester for Oracle这一产品上,该产品可以实现PL/SQL代码的自动化测试。Steven在线技术网址是http://www.ToadWorld.com/SF。你也可以登录http://feuerthoughts.blogspot.com,那里有他新近的主要的PL/SQL观点。Bill Pribyl是《学习Oracle PL/SQL》主要作者,还是《Oracle PL/SQL编程》及配套的袖珍参考手册的共同作者(均由O’Reilly出版)。他坚持撰写这些稀奇古怪的 PL/SQL代码,例如TCP/IP网络客户端、先验函数和基于XML的网页爬虫。Bill获得了Rice大学的理学学位,现在于德克萨斯州休斯顿的一家能源贸易公司供职。
【目录】
目 录(上册)

第1部分 PL/SQL编程

第1章 PL/SQL概述 3

1.1 什么是PL/SQL? 3

1.2 PL/SQL的起源 4

1.2.1 早期的PL/SQL 4

1.2.2 改进的应用程序移植能力 5

1.2.3 改进的执行授权和事务一致性 5

1.2.4 低调地起步,稳定地前进 6

1.3 这就是PL/SQL 6

1.3.1 与SQL整合 7

1.3.2 控制和条件逻辑 8

1.3.3 出现错误了 9

1.4 关于PL/SQL的版本 10

1.4.1 Oracle数据库11g的新特性 12

1.5 PL/SQL开发人员的资源 15

1.5.1 O’Reilly PL/SQL系列 16

1.5.2 网络上的PL/SQL 17

1.6 一些建议 18

1.6.1 不要太着急 18

1.6.2 不要怕寻求帮助 19

1.6.3 采用一种创建新的甚至激进的方法 20

第2章 创建并运行PL/SQL代码 21

2.1 在数据库中导航 21

2.2 创建和编辑源代码 22

2.3 SQL*Plus 23

2.3.1 启动SQL*Plus 24

2.3.2 运行一个SQL语句 26

2.3.3 运行PL/SQL程序 26

2.3.4 运行脚本 28

2.3.5 什么是“当前目录” 29

2.3.6 其他SQL*Plus任务 30

2.3.7 SQL*Plus中的错误处理 34

2.3.8 喜欢或者讨厌SQL*Plus的原因 34

2.4 执行必要的PL/SQL任务 35

2.4.1 创建存储过程 35

2.4.2 执行存储过程 39

2.4.3 显示存储过程 39

2.4.4 存储程序的授权和别名 40

2.4.5 删除存储程序 41

2.4.6 隐藏存储过程的源代码 41

2.5 编辑PL/SQL的环境 42

2.6 在其他语言中调用PL/SQL 43

2.6.1 C:使用Oracle的预编译器(Pro*C) 44

2.6.2 Java:使用JDBC 45

2.6.3 Perl:使用Perl DBI和DBD::Oracle 46

2.6.4 PHP:使用Oracle扩展 47

2.6.5 PL/SQL Server Pages 48

2.6.6 其他 49

第3章 语言基础 50

3.1 PL/SQL块结构 50

3.1.1 匿名块 52

3.1.2 命名块 53

3.1.3 嵌套块 54

3.1.4 作用范围 55

3.1.5 规范SQL语句中所有对变量和列的引用 56

3.1.6 可见性 58

3.2 PL/SQL字符集 61

3.3 标识符 63

3.3.1 保留字 64

3.3.2 空白和关键词 66

3.4 直接量 66

3.4.1 NULL 67

3.4.2 在一个直接量字符串中嵌入单引号 68

3.4.3 数字直接量 69

3.4.4 布尔直接量 70

3.5 分号分隔符 70

3.6 注释 70

3.6.1 单行注释语法 71

3.6.2 多行注释语法 71

3.7 PRAGMA关键字 72

3.8 标签 73

第2部分 PL/SQL程序结构

第4章 条件和顺序控制 77

4.1 IF语句 77

4.1.1 IF-THEN组合 78

4.1.2 IF-THEN-ELSE组合 80

4.1.3 IF-THEN-ELSIF组合 81

4.1.4 避免IF语法陷阱 82

4.1.5 嵌套的IF语句 84

4.1.6 短路求值 84

4.2 CASE语句和表达式 86

4.2.1 简单的CASE语句 87

4.2.2 搜索型CASE语句 88

4.2.3 嵌套的CASE语句 90

4.2.4 CASE表达式 91

4.3 GOTO语句 93

4.4 NULL语句 94

4.4.1 增加程序的可读性 94

4.4.2 在标签之后使用NULL 95

第5章 用循环进行迭代处理 96

5.1 循环的基础知识 96

5.1.1 不同循环的例子 97

5.1.2 PL/SQL循环结构 98

5.2 简单循环 99

5.2.1 终止简单循环:EXIT和EXIT WHEN 100

5.2.2 模仿一个REPEAT UNTIL循环 101

5.2.3 人为的无限循环 101

5.3 WHILE循环 103

5.4 数值型的FOR循环 104

5.4.1 使用数值型FOR循环的规则 105

5.4.2 数值型FOR循环的例子 105

5.4.3 处理非平滑增长 106

5.5 游标FOR循环 107

5.5.1 游标型FOR循环的例子 108

5.6 循环的标签 109

5.7 CONTINUE语句 110

5.8 迭代处理的技巧 113

5.8.1 循环索引使用容易理解的名称 113

5.8.2 好的退出方式 114

5.8.3 获得FOR循环执行信息 115

5.8.4 循环式的SQL语句 116

第6章 异常处理 118

6.1 异常处理概念和术语 118

6.2 定义异常 120

6.2.1 声明有名异常 121

6.2.2 异常名称和错误代码相互关联 122

6.2.3 被命名的系统异常 125

6.2.4 异常的作用范围 127

6.3 抛出异常 128

6.3.1 RAISE语句 128

6.3.2 使用RAISE_APPLICATION_ERROR 129

6.4 处理异常 130

6.4.1 内置的错误函数 132

6.4.2 在一个单独的句柄中包含多个异常 137

6.4.3 未处理的异常 137

6.4.4 传播未处理异常 138

6.4.5 异常后继续 140

6.4.6 WHEN OTHERS的处理代码 142

6.5 构建一个有效的错误管理架构 144

6.5.1 确定异常管理策略 145

6.5.2 组织好对应用专有错误代码的使用 148

6.5.3 使用标准化的错误管理程序 149

6.5.4 使用自己的异常对象 151

6.5.5 创建通用错误处理的标准模板 153

6.6 充分利用PL/SQL错误管理 155

第3部分 PL/SQL数据

第7章 使用数据 159

7.1 程序数据的命名 159

7.2 PL/SQL数据类型概述 161

7.2.1 字符数据 162

7.2.2 数字 162

7.2.3 日期、时间戳和时间间隔 163

7.2.4 布尔类型 164

7.2.5 二进制数据类型 164

7.2.6 ROWIDs 165

7.2.7 REF CURSORs 165

7.2.8 Internet数据类型 165

7.2.9 “Any”数据类型 166

7.2.10 用户定义数据类型 166

7.3 程序数据的声明 166

7.3.1 声明一个变量 167

7.3.2 声明常量 168

7.3.3 NOT NULL语句 168

7.3.4 锚定声明 168

7.3.5 游标和表的锚 170

7.3.6 使用锚定声明的好处 171

7.3.7 NOT NULL数据类型的锚 172

7.4 程序员定义的子类型 173

7.5 数据类型转换 174

7.5.1 隐式类型转换 174

7.5.2 显式类型转换 176

第8章 字符串 182

8.1 字符串类型 182

8.1.1 VARCHAR2数据类型 183

8.1.2 CHAR数据类型 184

8.1.3 String子类型 185

8.2 使用字符串 186

8.2.1 字符串常量 186

8.2.2 不可打印字符 187

8.2.3 拼接字符串 188

8.2.4 处理大小写 189

8.2.5 传统的检索、提取和替换 192

8.2.6 补齐 194

8.2.7 正则表达式的检索、提取和替换 197

8.2.8 使用空字符串 208

8.2.9 混用CHAR和VARCHAR2 210

8.3 字符串函数快速参考 212

第9章 数字 221

9.1 数值型数字类型 221

9.1.1 NUMBER类型 222

9.1.2 PLS_INTEGER类型 227

9.1.3 BINARY_INTEGER类型 228

9.1.4 SIMPLE_INTEGER类型 228

9.1.5 BINARY_FLOAT和BINARY_DOUBLE类型 230

9.1.6 SIMPLE_FLOAT和SIMPLE_DOUBLE类型 235

9.1.7 数字子类型 235

9.2 数字转换 237

9.2.1 TO_NUMBER函数 237

9.2.2 TO_CHAR函数 240

9.2.3 CAST函数 246

9.2.4 隐式转换 246

9.3 数字运算符 248

9.4 数字函数 249

9.4.1 四舍五入和截断函数 249

9.4.2 三角函数 250

9.4.3 数字函数的快速参考 250

第10章 日期和时间戳 255

10.1 Datatime数据类型 255

10.1.1 声明日期时间变量 258

10.1.2 选择日期时间数据类型 259

10.2 得到当前日期和时间 259

10.3 INTERVAL数据类型 262

10.3.1 声明INTERVAL变量 263

10.3.2 什么时候使用INTERVAL 264

10.4 日期时间转换 266

10.4.1 从字符串到日期时间 266

10.4.2 从日期时间到字符串 269

10.4.3 使用时区 271

10.4.4 精确匹配需要格式掩码 274

10.4.5 让精确匹配更容易 275

10.4.6 解释滑动窗口中两位数字的年份 275

10.4.7 把时区转换成字符串 276

10.4.8 用填充模式把输出补齐 277

10.5 日期和时间戳直接量 278

10.6 时间间隔的转换 279

10.6.1 从数字到时间间隔的转换 280

10.6.2 把字符串转换成间隔 281

10.6.3 时间间隔的格式化显示 281

10.7 时间间隔直接量 282

10.8 CAST和EXTRACT 284

10.8.1 CAST函数 284

10.8.2 EXTRACT函数 285

10.9 日期时间的算法 286

10.9.1 时间间隔和日期时间的算法 286

10.9.2 DATE数据类型的日期算法 287

10.9.3 计算两个日期时间之间的时间间隔 288

10.9.4 DATE和TIMESTAMP混合计算 290

10.9.5 时间间隔的加减运算 291

10.9.6 时间间隔的乘除运算 292

10.9.7 使用不受限制的时间间隔类型 293

10.10 日期/时间函数的快速参考 294

第11章 记录类型 297

11.1 PL/SQL中的记录 297

11.1.1 使用记录的好处 298

11.1.2 声明记录 300

11.1.3 程序员自定义的记录类型 301

11.1.4 使用记录类型 304

11.1.5 记录的比较 310

11.1.6 触发器伪记录 311

第12章 集合 313

12.1 集合概述 314

12.1.1 集合概念和术语 314

12.1.2 集合类型 316

12.1.3 集合示例 317

12.1.4 使用集合的场合 321

12.1.5 选择一个集合类型 326

12.2 集合方法(内置) 327

12.2.1 COUNT方法 328

12.2.2 DELETE方法 329

12.2.3 EXISTS方法 330

12.2.4 EXTEND方法 331

12.2.5 FIRST和LAST方法 332

12.2.6 LIMIT方法 333

12.2.7 PRIOR和NEXT方法 333

12.2.8 TRIM方法 334

12.3 使用集合 335

12.3.1 声明集合类型 336

12.3.2 集合变量的声明和初始化 340

12.3.3 用数据填充集合 345

12.3.4 访问集合内的数据 350

12.3.5 使用字符串索引的集合 350

12.3.6 复杂数据类型的集合 356

12.3.7 多级集合 359

12.3.8 在SQL中使用集合 367

12.4 嵌套表的多重集合操作 372

12.4.1 测试嵌套表是否相等及成员属性 374

12.4.2 检查元素是否是嵌套表的成员 375

12.4.3 执行高级集合操作 376

12.4.4 处理嵌套表中的重复数据 377

12.5 模式级别集合的维护 379

12.5.1 必需的权限 379

12.5.2 集合和数据字典 379

第13章 其他数据类型 381

13.1 BOLEAN类型 381

13.2 RAW数据类型 382

13.3 UROWID和ROWID数据类型 383

13.3.1 获得ROWID 384

13.3.2 使用ROWID 384

13.4 LOB数据类型 386

13.5 使用LOB 387

13.5.1 理解LOB定位符 389

13.5.2 LOB的空和NULL 390

13.5.3 向LOB中写入数据 392

13.5.4 读取LOB数据 395

13.5.5 BFILE不同于其他 396

13.5.6 SecureFiles和BasicFiles 401

13.5.7 临时LOB 403

13.5.8 原生的LOB操作 406

13.5.9 LOB转换函数 410

13.6 预定义的对象类型 411

13.6.1 XMLType类型 411

13.6.2 URI类型 415

13.6.3 Any类型 417

第4部分 PL/SQL中的SQL

第14章 DML和事务管理 423

14.1 PL/SQL中的DML 424

14.1.1 DML语句的快速入门 424

14.1.2 DML操作的游标属性 428

14.1.3 从DML语句返回信息 429

14.1.4 DML和异常处理 430

14.1.5 DML和记录 431

14.2 事务管理 434

14.2.1 COMMIT语句 434

14.2.2 ROLLBACK语句 435

14.2.3 SAVEPOINT语句 436

14.2.4 SET TRANSACTION命令 436

14.2.5 LOCK TABLE语句 437

14.3 自治事务 438

14.3.1 定义自治事务 438

14.3.2 自治事务的规则和限制 439

14.3.3 事务的可见性 440

14.3.4 什么时候使用自治事务 440

14.3.5 构建一个自治的日志机制 441

第15章 数据提取 444

15.1 游标基础 445

15.1.1 一些有关数据提取的术语 446

15.1.2 典型的查询操作 447

15.1.3 游标属性介绍 448

15.1.4 在游标中使用PL/SQL变量 451

15.1.5 在显式游标和隐式游标间做选择 451

15.2 使用隐式游标 452

15.2.1 隐式游标的例子 453

15.2.2 隐式游标的异常处理 454

15.2.3 隐式SQL的游标属性 456

15.3 使用显式游标 458

15.3.1 声明显式游标 459

15.3.2 打开显式游标 462

15.3.3 从显式游标中提取数据 463

15.3.4 显式游标中的列别名 464

15.3.5 关闭显式游标 465

15.3.6 显式游标的属性 467

15.3.7 游标参数 469

15.4 SELECT…FOR UPDATE 472

15.4.1 用COMMIT释放锁资源 473

15.4.2 WHERE CURRENT OF语句 474

15.5 游标变量和REF CURSOR 475

15.5.1 为什么用游标变量 476

15.5.2 和静态游标的相同点 477

15.5.3 声明REF CURSOR类型 478

15.5.4 声明游标变量 478

15.5.5 打开游标变量 479

15.5.6 从一个游标变量获取数据 480

15.5.7 游标变量的使用规则 483

15.5.8 游标变量作为参数传递 486

15.5.9 游标变量的约束限制 488

15.6 游标表达式 488

15.6.1 使用游标表示式 489

15.6.2 游标表达式的约束限制 491

第16章 动态SQL和动态PL/SQL 492

16.1 NDS语句 493

16.1.1 EXECUTE IMMEDIATE语句 493

16.1.2 OPEN FOR语句 496

16.1.3 4种动态SQL方法 502

16.2 绑定变量 503

16.2.1 参数模式 504

16.2.2 重复的占位符 506

16.2.3 NULL值的传递 507

16.3 使用对象和集合 508

16.4 动态PL/SQL 510

16.4.1 构建动态PL/SQL块 511

16.4.2 用动态块替换重复的代码 513

16.5 NDS的建议 513

16.5.1 对于共享的程序使用调用者权限 514

16.5.2 预估并处理动态的错误 514

16.5.3 使用绑定而不是拼接 516

16.5.4 把代码注入的风险最小化 518

16.6 什么时候使用DBMS_SQL 521

16.6.1 解析非常长的字符串 521

16.6.2 得到查询的列的信息 522

16.6.3 实现第4种方法的动态SQL的需求 524

16.6.4 把动态游标的解析最小化 530

16.7 Oracle数据库11g新特性 532

16.7.1 DBMS_SQL.TO_REFCURSOR函数 532

16.7.2 DBMS_SQL.TO_CURSOR函数 534

16.7.3 DBMS_SQL的安全性增强 536

目 录(下册)

第5部分 构造PL/SQL应用程序

第17章 过程、函数与参数 543

17.1 代码模块化 543

17.2 过程 545

17.2.1 调用一个过程 547

17.2.2 过程的头部 548

17.2.3 过程体 548

17.2.4 END标签 548

17.2.5 RETURN语句 549

17.3 函数 549

17.3.1 函数的结构 549

17.3.2 返回的数据类型 552

17.3.3 END标签 552

17.3.4 调用函数 553

17.3.5 不带参数的函数 554

17.3.6 函数的头部 554

17.3.7 函数体 555

17.3.8 RETURN语句 555

17.4 参数 557

17.4.1 定义参数 558

17.4.2 形参和实参 558

17.4.3 参数模式 559

17.4.4 在PL/SQL中明确地把形参和实参关联在一起 562

17.4.5 NOCOPY参数模式限定符 566

17.4.6 缺省值 566

17.5 局部或者嵌套模块 567

17.5.1 使用局部模块的好处 568

17.5.2 局部模块的作用范围 571

17.5.3 用局部模块让我们的代码更整洁 571

17.6 模块重载 572

17.6.1 使用重载的好处 573

17.6.2 重载的限制 576

17.6.3 关于数字类型的重载 576

17.7 前置声明 577

17.8 高级主题 579

17.8.1 在SQL中调用我们的函数 579

17.8.2 表函数 581

17.8.3 确定性函数 591

17.9 把模块化进行到底 592

第18章 包 593

18.1 为什么是包? 593

18.1.1 演示包的能力 594

18.1.2 有关包的一些概念 597

18.1.3 图示私有性 599

18.2 构建包的规则 599

18.2.1 包规范 600

18.2.2 包体 601

18.2.3 包的初始化 603

18.3 包成员的调用规则 607

18.4 使用包数据 608

18.4.1 在一个Oracle会话内全局可见 609

18.4.2 全局公有数据 609

18.4.3 包游标 610

18.4.4 包的串行化 614

18.5 何时使用包 617

18.5.1 封装对数据的访问 617

18.5.2 避免直接量的硬编码 620

18.5.3 改善内置特性的可用性 622

18.5.4 把逻辑上相关的功能组织在一起 623

18.5.5 缓存静态的会话数据 624

18.6 包和对象类型 624

第19章 触发器 626

19.1 DML触发器 627

19.1.1 DML触发器的概念 628

19.1.2 创建DML触发器 630

19.1.3 DML触发器的例子:不许作弊! 635

19.1.4 同一类型的多个触发器 641

19.1.5 何去何从 642

19.1.6 突变表的错误 644

19.1.7 复合触发器:聚集一堂 645

19.2 DDL触发器 648

19.2.1 创建DDL触发器 649

19.2.2 可用事件 651

19.2.3 可用属性 652

19.2.4 使用事件和属性 653

19.2.5 删除不可删除的 657

19.2.6 INSTEAD OF CREATE 触发器 657

19.3 数据库事件触发器 659

19.3.1 创建数据库事件触发器 659

19.3.2 STARTUP触发器 660

19.3.3 SHUTDOWN触发器 661

19.3.4 LOGON触发器 661

19.3.5 LOGOFF触发器 661

19.3.6 SERVERERROR触发器 662

19.4 INSTEAD OF触发器 666

19.4.1 创建INSTEAD OF触发器 666

19.4.2 INSTEAD OF INSERT触发器 668

19.4.3 INSTEAD OF UPDATE触发器 670

19.4.4 INSTEAD OF DELETE触发器 671

19.4.5 填充表 671

19.4.6 嵌套表的INSTEAD OF触发器 672

19.5 AFTER SUSPEND触发器 674

19.5.1 构建AFTER SUSPEND触发器 674

19.5.2 看看真实的触发器 676

19.5.3 ORA_SPACE_ERROR_INFO函数 677

19.5.4 DBMS_RESUMABLE包 678

19.5.5 捕获多个时间 679

19.5.6 该不该处理? 680

19.6 管理触发器 680

19.6.1 禁用、启用以及删除触发器 680

19.6.2 创建一个禁用的触发器 681

19.6.3 查看触发器 682

19.6.4 检查触发器的有效性 684

第20章 管理PL/SQL代码 685

20.1 管理数据库内的代码 686

20.1.1 数据字典视图概述 687

20.1.2 显示存储对象的信息 688

20.1.3 源代码的显示和搜索 689

20.1.4 根据程序的大小确定Pinning需求 691

20.1.5 获得存储代码的属性 692

20.1.6 通过视图分析和更改触发器状态 693

20.1.7 分析参数信息 693

20.1.8 分析标识符的使用(Oracle 数据库11g的PL/Scope) 695

20.2 依赖关系的管理以及代码的重编译 697

20.2.1 通过数据字典视图分析依赖关系 698

20.2.2 细粒度依赖(Oracle数据库11g) 702

20.2.3 远程依赖 703

20.2.4 Oracle的远程调用模式的限制 706

20.2.5 失效的程序单元的重编译 707

20.3 编译时刻警告 711

20.3.1 一个入门例子 711

20.3.2 启用编译时刻警告 712

20.3.3 一些有用的警告 714

20.4 PL/SQL程序的测试 722

20.4.1 典型的、华而不实的测试技术 723

20.4.2 PL/SQL代码测试的一般建议 726

20.4.3 PL/SQL的自动测试选项 727

20.4.4 用utPLSQL测试 728

20.4.5 用Quest Code Tester for Oracle测试 730

20.5 跟踪PL/SQL的执行 732

20.5.1 DBMS_APPLICATION_INFO 734

20.5.2 Quest Error Manager跟踪 736

20.5.3 DBMS_TRACE功能 738

20.6 PL/SQL程序的调试 741

20.6.1 错误的调试方法 741

20.6.2 调试技巧和策略 743

20.7 保护存储过程代码 747

20.7.1 包装的约束和限制 747

20.7.2 使用包装功能 748

20.7.3 通过DBMS_DDL动态包装 748

20.7.4 包装过的代码的使用指南 749

20.8 基于版本的重定义(Oracle数据库11g R2版本) 750

第21章 PL/SQL的性能优化 753

21.1 辅助优化的工具 754

21.1.1 内存使用分析 755

21.1.2 发现PL/SQL代码中的瓶颈所在 755

21.1.3 计算消耗时间 760

21.1.4 选择最快的程序 762

21.1.5 避免无限循环 763

21.1.6 性能相关警告 764

21.2 优化过的编译器 765

21.2.1 优化器的工作原理 766

21.2.2 循环Fetch操作的运行时优化 769

21.3 数据缓存技术 770

21.3.1 基于包的缓存 771

21.3.2 确定性函数的缓存 776

21.3.3 函数结果缓存(Oracle数据库11g) 778

21.3.4 缓存总结 790

21.4 多行SQL的批处理 790

21.4.1 通过BULK COLLECT加速查询 792

21.4.2 通过FORALL加速DML 798

21.5 利用管道化的表函数提升性能 808

21.5.1 用基于管道化函数的加载方式替换基于行的插入 809

21.5.2 用管道函数调优Merge操作 816

21.5.3 用并行管道函数进行异步的数据卸载 818

21.5.4 并行管道函数中的分区子句和流子句对性能的影响 822

21.5.5 管道函数和基于成本的优化器 823

21.5.6 用管道函数优化复杂的数据加载 829

21.5.7 管道函数结束语 836

21.6 专用的优化技术 837

21.6.1 使用NOCOPY参数模式提示符 837

21.6.2 使用正确的数据类型 840

21.7 回顾性能 841

第22章 I/O操作和PL/SQL 843

22.1 显示信息 843

22.1.1 启用DBMS_OUTPUT 844

22.1.2 向缓存中写入行 844

22.1.3 从缓存中读取内容 845

22.2 文件的读写 846

22.2.1 UTL_FILE_DIR参数 847

22.2.2 使用Oracle目录 848

22.2.3 打开文件 850

22.2.4 文件已经打开了吗? 852

22.2.5 关闭文件 852

22.2.6 读取文件 853

22.2.7 向文件中写 855

22.2.8 拷贝文件 858

22.2.9 删除文件 859

22.2.10 文件改名和文件移动 859

22.2.11 提取文件属性 860

22.3 发送邮件 861

22.3.1 Oracle的前提条件 862

22.3.2 配置网络安全 863

22.3.3 发送一个短的(32 767或者更少)的纯文本消息 863

22.3.4 在邮件地址中加上“友好”的名字 865

22.3.5 发送任意长度的纯文本消息 866

22.3.6 发送带有小附件(
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP