序 1
目录 1
前言 5
第一部分 采用PL/SQL进行程序设计 23
第一章 PL/SQL入门 23
什么是PL/SQL? 23
在Oracle应用程序中编程的概念 25
PL/SQL的起源 27
PL/SQL的版本 29
给Oracle程序设计人员的建议 50
我喜欢的几个(PL/SQL)功能 53
编写最好的代码以实现优秀的PL/SQL程序 57
PL/SQL字符集 64
第二章 PL/SQL语言基础 64
标识符 66
直接量 69
分号定界符 72
注释 73
PRAGMA关键字 74
块结构 75
第三章 有效的编码风格 78
有效布局的基本原则 79
格式化SQL语句 87
格式化控制结构 89
格式化PL/SQL块 93
格式化包 95
有效地使用注释 96
注释整个包 103
第二部分 PL/SQL语言元素 109
第四章 变量与程序数据 109
标识符 109
标量数据类型 111
PL/SQL中的NULL 137
变量声明 140
锚定的声明 143
由程序员定义的子类型 149
创建和使用变量的技巧 152
条件控制语句 166
第五章 条件和顺序控制 166
顺序控制语句 175
第六章 数据库交互和游标 184
事务管理 184
PL/SQL中的游标 190
隐式游标和显式游标 193
声明游标 197
打开游标 203
从游标中取回 204
游标中列的别名 207
关闭游标 208
游标属性 209
游标参数 215
游标中的SELECT FOR UPDATE 219
游标变量 223
使用游标 240
第七章 循环 247
循环的基础知识 248
简单的循环 250
数字FOR循环 253
游标FOR循环 256
WHILE循环 260
管理循环的执行 262
使用PL/SQL循环的技巧 266
第八章 异常处理程序 274
为什么要执行异常处理? 275
异常段 276
异常的类型 278
确定异常处理的行为 285
引发异常 292
处理异常 298
客户-服务器错误通信 304
NO_DATA_FOUND:多用途的异常 306
IF语句形式的异常处理程序 307
只引发异常 309
第九章 PL/SQL中的记录 313
记录的基础知识 313
基于表的记录 319
基于游标的记录 320
程序员定义的记录 323
读写记录中的值 327
记录类型和记录的兼容性 330
嵌套记录 333
第十章 PL/SQL表 340
PL/SQL表和其他集合 341
PL/SQL表的特点 342
PL/SQL表和DML语句 343
声明PL/SQL表 344
引用和修改PL/SQL表中的行 346
填充PL/SQL表中的行 351
清除PL/SQL表 353
PL/SQL 2.3发行版中PL/SQL表的增强功能 354
使用PL/SQL表 362
第三部分 内置函数 391
第十一章 字符函数 391
字符函数的描述 392
字符函数的示例 416
第十二章 日期函数 435
日期函数的描述 436
日期函数的示例 447
第十三章 数字、LOB和其他函数 455
数字函数的描述 457
LOB函数的描述 466
其他函数的描述 470
第十四章 转换函数 479
转换格式 480
转换函数的描述 485
转换函数的实例 491
第四部分 模块化的代码 515
第十五章 过程和函数 515
模块化的代码 516
PL/SQL块结构的回顾 517
匿名PL/SQL块 520
过程 534
函数 538
参数 546
局部模块 556
模块的重载 561
提前声明 567
着手实现模块化吧! 568
第十六章 包 570
包的优点 571
包结构概览 573
包说明 582
包体 589
包数据 591
包初始化 597
第十七章 在SQL中调用PL/SQL函数 601
存在的问题 601
在SQL中调用存储函数的语法 604
在SQL中使用存储函数的要求 605
在SQL中使用PL/SQL函数的限制 606
在SQL中调用打包的函数 608
列/函数名的优先级 613
在SQL中调用PL/SQL函数的事实 613
嵌入PL/SQL的示例 616
第五部分 PL/SQL8的新功能 633
第十八章 对象类型 633
Oracle8对象的简介 634
Oracle对象的例子 645
创建对象类型的语法 654
在PL/SQL和SQL中操纵对象 668
修改持久对象 679
对象的内部管理 695
使用对象选项 699
第十九章 嵌套表和VARRAY 702
集合类型 703
建立新的集合 707
声明集合数据类型的语法 715
使用集合 717
集合伪函数 727
集合的内置函数与过程 736
PL/SQL到服务器集成的示例 743
集合的内部管理 746
应该使用哪种集合类型? 748
第二十章 对象视图 749
举例:使用对象视图 751
INSTEAD OF触发器 755
对象视图的语法 759
对象视图与对象表之间的区别 763
不是所有使用对象的视图都是对象视图 773
计划的演变 773
对象视图的内部管理 775
后记:使用BFILE数据类型 777
第二十一章 外部过程 780
外部过程简介 781
创建一个外部过程的步骤 786
外部过程的语法 794
映射参数 797
外部过程的内部管理 806
OCI服务例程 806
实例 809
第六部分 使PL/SQL程序正常工作 821
第二十二章 代码设计的技巧 821
选择有意义的模块名和参数名 822
建立最具功能性的函数 826
充分利用局部模块化 841
注意不带任何参数的模块 843
创建独立的模块 845
构造抽象数据类型 849
参数设计的技巧 857
第二十三章 管理数据库中的代码 867
执行存储代码 868
事务处理的完整性和执行权限 873
模块验证与依赖关系管理 876
远程过程调用 878
利用SQL*Plus管理存储对象 880
使用SQL检查存储对象 885
加密存储代码 894
第二十四 章调试PL/SQL 899
错误的调试方法 900
调试技巧与策略 902
第二十五章 调整PL/SQL应用程序 916
分析程序的性能 917
调整对编译过的代码的访问 920
调整对数据的访问 926
调整算法 939
PL/SQL8增强的性能概览 961
第二十六章 跟踪PL/SQL的执行 963
PL/SQL跟踪工具 963
为产品支持而跟踪 967
自由格式过滤 971
结构化的接口过滤 972
快速跟踪 974
第七部分 附录 981
附录一 配套光盘中的内容 981
附录二 从PL/SQL 1.1版本调用存储过程 985
附录三 内置包 994
词汇表 1043