新闻资讯
看你所看,想你所想

Oracle PL/SQL程式设计

Oracle PL/SQL程式设计

Oracle PL/SQL程式设计

《Oracle PL/SQL程式设计》是 人民邮电出版社出版的一本图书。

基本介绍

  • 书名:Oracle PL/SQL程式设计
  • 作者:弗伊尔斯坦(Steven Feuerstein) 、普瑞拜尔(Bill Pribyl)
  • 译者:张晓明
  • ISBN:7115231435, 9787115231437
  • 页数:1106页
  • 出版社:人民邮电出版社
  • 出版时间:2011年7月1日
  • 装帧:平装
  • 开本:16开

内容简介

《Oracle PL/SQL程式设计(第5版)(套装上下册)》基于Oracle资料库11g,从PL/SQL编程、PL/SQL程式结构、PL/SQL程式数据、PL/SQL中的SQL、PL/SQL套用构建、高级PL/SQL主题这6个方面详细系统地讨论了PL/SQL以及如何有效地使用它。《Oracle PL/SQL程式设计(第5版)(套装上下册)》能够帮助你充分利用PL/SQL来解决资料库开发中遇到的各种问题,引导你掌握各种构建套用的技巧和技术,以便使你编写出高效、可维护的代码。《OraclePL/SQL程式设计(第5版)》不但介绍了大量的Oracle11g的PL/SQL新性能,还提供了许多最佳化PL/SQL性能的新方法。
《OraclePL/SQL程式设计(第5版)》结构清晰,示例丰富,实践性强,适用于Oracle资料库开发人员、Oracle资料库管理员等相关资料库从业人员,也可以作为各大、中专院校相关专业师生的参考用书和相关培训机构的培训教材。

编辑推荐

《Oracle PL/SQL程式设计(第5版)(套装上下册)》:近15年来,成千上万的PL/SQL程式设计师——无论是初学者还是经验丰富的开发者——都同样需要依赖《oracle PL/SQL程式设计》来帮助他们充分掌握和套用这门功能强大的语言。第5版是基于Oracle资料库11g的R1、R2两个版本的最新版,包含了语法、建议、大量实例和许多新的信息。了解新特徵,包括基于版本的重定义功能、函式结果快取功能、CONTINUE语句、複合触发器和针对大对象的SecureFiles。使用工具和技巧来最佳化PL/sQL性能,例如PL/Scope和PL/SQL沖的层次化profiler。探讨了数据类型、条件控制语句和顺序控制语句、循环、异常处理、安全特性、全球化和本地化问题,以及PL/SQL架构。通过使用过程、函式、触发器和包,建立模组化的PL/SQL套用。Steven Feuerstein是Oracle PL/sQL领域全球最领先的专家之一。作为10本PL/sQL书籍的作者,他从1980年开始从事软体开发,现在是Quest软体公司的PL/sQL布道者。

媒体推荐

对于应用程式开发人员而盲,Oracle资料库11g中出现的一些关键的新特徵和性能使得PL/SQL这门语言更加重要。在这一版中,Steven Feuerstein和Bill Priby对于如何使用PL/SQL给出了更有价值的指导。他们非同寻常的见解和观点将会帮助应用程式开发人员充分利用PL/SQL的所有新性能,并且最大限度地发挥应用程式的性能。
大量实例和清晰的讲解使读者不仅可以轻鬆掌握如何使用PL/SQL的特性,而且能够理解针对特殊套用需求为什幺要这幺做。对于建立基于Oracle的套用的开发者而言,深入理解PL/SQL知识的重要性是不言而喻的。而对于每一位想学好PL/SQL的人来说,这本书都是至关重要的。
——Ken Jacobs
Oracle公司产品战略副总裁
很久以来,对于每一位认真的PL/SQL开发人员来说,这本书都是必不可少的。引人入胜的叙述方式使得这本书成为我书桌上不可或缺的一员。
——Alex De Vergori
Betfair有限公司资料库架构师
Oracle杂誌2008年年度PL/SQL开发者

目录

Oracle PL/SQL程式设计(第5版)(上册)目录:
第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
Oracle PL/SQL程式设计(第5版)(下册)目录:
第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 传送带有小附属档案(32 767)的讯息 867
22.3.7 以附属档案形式传送一个小档案(32 767) 869
22.3.8 任意大小的附属档案 870
22.4 使用Web数据(HTTP) 872
22.4.1 “分片”获得一个Web页面 873
22.4.2 把页面提取到一个LOB中 874
22.4.3 使用HTTP的用户名/密码验证 875
22.4.4 获取一个SSL加密的Web页面(通过HTTPS) 876
22.4.5 通过GET或者POST给一个Web页面提交数据 877
22.4.6 禁用Cookies或者Cookies持久化 881
22.4.7 从FTP伺服器获取数据 881
22.4.8 使用代理伺服器 882
22.5 PL/SQL中可用的其他I/O类型 882
22.5.1 资料库管道、伫列、告警 883
22.5.2 TCP Socket 883
22.5.3 Oracle的内置Web伺服器 883
第6部分 高级PL/SQL主题
第23章 套用安全与PL/SQL 887
23.1 安全概述 887
23.2 加密 888
23.2.1 密钥长度 890
23.2.2 算法 890
23.2.3 填补和连线 892
23.2.4 DBMS_CRYPTO包 892
23.2.5 数据加密 894
23.2.6 LOB的加密 897
23.2.7 安全档案 897
23.2.8 数据解密 898
23.2.9 生成密钥 899
23.2.10 密钥管理 900
23.2.11 加密散列 905
23.2.12 使用讯息验证码 907
23.2.13 使用透明数据加密(TDE) 908
23.2.14 透明的表空间加密 910
23.3 行级安全 912
23.3.1 为什幺要学习RLS 914
23.3.2 一个简单的RLS示例 915
23.3.3 使用动态策略 919
23.3.4 使用列敏感的RLS 923
23.3.5 RLS调试 927
23.4 应用程式上下文 930
23.4.1 使用应用程式上下文 931
23.4.2 上下文的安全 932
23.4.3 把上下文用作RLS的谓词条件 933
23.4.4 识别出非资料库的用户 936
23.5 细粒度审计 938
23.5.1 为什幺要学习FGA 939
23.5.2 一个简单的FGA示例 940
23.5.3 访问多少列 942
23.5.4 查看审计跟蹤信息 943
23.5.5 使用绑定变数 943
23.5.6 使用句柄模组 945
第24章 PL/SQL架构 947
24.1 DIANA是谁(或者是什幺) 947
24.2 Oracle是如何执行PL/SQL代码的 948
24.2.1 一个例子 949
24.2.2 编译器的限制 952
24.3 PL/SQL的预设包 952
24.4 执行许可权模型 955
24.4.1 定义者许可权模型 956
24.4.2 调用者许可权模式 960
24.4.3 组合许可权模型 962
24.5 条件编译 963
24.5.1 条件编译的例子 964
24.5.2 查询指令 965
24.5.3 $IF指令 968
24.5.4 $ERROR指令 970
24.5.5 把代码和包常量同步 970
24.5.6 用查询指令实现程式专有设定 971
24.5.7 使用预处理后的代码 972
24.6 PL/SQL和资料库实例记忆体 974
24.6.1 PGA、UGA和CGA 974
24.6.2 游标、记忆体及其他 975
24.6.3 减少记忆体用的技巧 977
24.6.4 如果记忆体用光了该怎幺办 987
24.7 原生式编译 990
24.7.1 什幺时候使用解释模式 990
24.7.2 什幺时候使用原生模式 991
24.7.3 原生编译和资料库版本 991
24.8 我们需要知道的 991
第25章 PL/SQL的全球化和本地化 993
25.1 概述和术语 995
25.2 Unicode入门 996
25.2.1 国家字元集的数据类型 998
25.2.2 字元编码 998
25.2.3 和全球化支持相关的参数 999
25.2.4 Unicode 函式 1000
25.3 字元语义 1007
25.4 字元串排序顺序 1011
25.4.1 二进制排序 1012
25.4.2 单语言排序 1013
25.4.3 多语言排序 1015
25.5 多语言信息检索 1016
25.5.1 信息检索和PL/SQL 1018
25.6 日期/时间 1021
25.6.1 时间戳数据类型 1021
25.6.2 日期/时间格式 1022
25.7 货币转换 1026
25.8 PL/SQL的全球化开发工具箱 1028
25.8.1 UTL_I18N工具包 1028
25.8.2 UTL_LMS异常处理包 1031
25.8.3 GDK实现选项 1032
第26章 PL/SQL的面向对象特性 1034
26.1 Oracle对象特性的介绍 1034
26.2 对象类型示例 1036
26.2.1 创建一个基类 1037
26.2.2 创建子类型 1039
26.2.3 方法 1040
26.2.4 在Oracle资料库11g中调用父类的方法 1045
26.2.5 保存、提取、使用持久化对象 1046
26.2.6 演变和创建 1054
26.2.7 回到指针吗? 1056
26.2.8 泛化数据:ANY类型 1063
26.2.9 我也可以自己做 1067
26.2.10 对象的比较 1071
26.3 对象视图 1075
26.3.1 一个示例的关係系统 1077
26.3.2 带有集合属性的对象视图 1078
26.3.3 对象子视图 1081
26.3.4 带有反关係的对象视图 1083
26.3.5 INSTEAD OF触发器 1084
26.3.6 对象视图和对象表的区别 1086
26.4 维护对象类型和对象视图 1087
26.4.1 数据字典 1087
26.4.2 许可权 1089
26.5 来自一个关係开发者的总结思考 1091
附录A 正则表达式的元字元和函式参数 1093
A.1 元字元 1093
A.2 函式和参数 1096
A.2.1 正则表达式函式 1096
A.2.2 正则表达式参数 1097
附录B 数字格式模型 1099
附录C 日期格式模型 1102

相关推荐

声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:yongganaa@126.com