Oracle PL/SQL程序设计(第二版)
Oracle PL/SQL程序设计(第二版)
Steven Feuerstein, Bill Pribyl
林琪, 王宇 译
出版时间:2003年06月
页数:1064
无论是对初学者,还是对有经验的PL/SQL开发人员来说,本书第一版都很快成为他们不可缺少的参考资料。书中富含大量实例和建议,能够帮助使用PL/SQL的每一个人(从Oracle Forms开发人员到数据库管理员)充分利用这一强大的语言。
通过提高此语言的潜力和复杂性,Oracle8为PL/SQL程序员提供了新的挑战。本版针对Oracle8对原书进行了更新,增加了描述新的PL/SQL对象特性(对象类型、集合、对象视图和外部过程)的章节。第二版中还包括一章专门介绍优化PL/SQL的问题(对此的咨询颇多)。另外对于调试和跟踪PL/SQL执行也做了进一步讨论。本书附带的光盘包含了本书的配套实用指南(Oracle PL/SQL Programming Companion Utilities Guide),它是由RevealNet公司所开发的一个在线工具,其中包括作者提供的近百个源代码文件和文档。
即使你已经读过本书第一版,在第二版及其附带的光盘中你仍然会发现大量新的信息和有所修改的信息。如果对于PL/SQL你还是一个新手,你会很快发现自己正逐步入境。
“随着Oracle8的发布和对象技术在Oracle中的引入,对于成功的基于Oracle的应用程序而言,PL/SQL已经成为一个更为重要的元素。Steven Feuerstein的卓越之作《Oracle PL/SQL程序设计(第一版)》已经成为了世界各地开发人员的‘PL/SQL圣经’。此第二版则更加优秀!Steven和Bill将PL/SQL8的所有新特性都涵盖于此,尤其是Oracle8对象选项,此外还提供了更多实际的示例。我诚挚地推荐这本书。”
——Ken Jacobs
Oracle公司服务器技术部产品策略副总裁
“对于我们这些投身于解决所选行业实际问题的人来说,Steven Feuerstein的这本书显然是一本绝佳的技术手册,我们可以由此开始(或继续)使用PL/SQL并发挥我们的创造力。此书为我们提供了一个关于专门技术、编程经验以及对PL/SQL细微变化的深入知识的可用资源。丰富的技术内容,再辅以幽默睿智的文笔,使这本书成为PL/SQL开发人员的必备资料。”
——Becky Olsen
Office Equipment Wholesale公司信息系统部
  1. 前言
  2. 第一部分 采用PL/SQL进行程序设计
  3. 第一章 PL/SQL入门
  4. 什么是PL/SQL?
  5. 在Oracle应用程序中编程的概念
  6. PL/SQL的起源
  7. PL/SQL的版本
  8. 给Oracle程序设计人员的建议
  9. 我喜欢的几个(PL/SQL)功能
  10. 编写最好的代码以实现优秀的PL/SQL程序
  11. 第二章 PL/SQL语言基础
  12. PL/SQL字符集
  13. 标识符
  14. 直接量
  15. 分号定界符
  16. 注释
  17. PRAGMA关键字
  18. 块结构
  19. 第三章 有效的编码风格
  20. 有效布局的基本原则
  21. 格式化SQL语句
  22. 格式化控制结构
  23. 格式化PL/SQL块
  24. 格式化包
  25. 有效地使用注释
  26. 注释整个包
  27. 第二部分 PL/SQL语言元素
  28. 第四章 变量与程序数据
  29. 标识符
  30. 标量数据类型
  31. PL/SQL中的NULL
  32. 变量声明
  33. 锚定的声明
  34. 由程序员定义的子类型
  35. 创建和使用变量的技巧
  36. 第五章 条件和顺序控制
  37. 条件控制语句
  38. 顺序控制语句
  39. 第六章 数据库交互和游标
  40. 事务管理
  41. PL/SQL中的游标
  42. 隐式游标和显式游标
  43. 声明游标
  44. 打开游标
  45. 从游标中取回
  46. 游标中列的别名
  47. 关闭游标
  48. 游标属性
  49. 游标参数
  50. 游标中的SELECT FOR UPDATE
  51. 游标变量
  52. 使用游标
  53. 第七章 循环
  54. 循环的基础知识
  55. 简单的循环
  56. 数字FOR循环
  57. 游标FOR循环
  58. WHILE循环
  59. 管理循环的执行
  60. 使用PL/SQL循环的技巧
  61. 第八章 异常处理程序
  62. 为什么要执行异常处理?
  63. 异常段
  64. 异常的类型
  65. 确定异常处理的行为
  66. 引发异常
  67. 处理异常
  68. 客户-服务器错误通信
  69. NO_DATA_FOUND: 多用途的异常
  70. IF语句形式的异常处理程序
  71. 只引发异常
  72. 第九章 PL/SQL中的记录
  73. 记录的基础知识
  74. 基于表的记录
  75. 基于游标的记录
  76. 程序员定义的记录
  77. 读写记录中的值
  78. 记录类型和记录的兼容性
  79. 嵌套记录
  80. 第十章 PL/SQL表
  81. PL/SQL表和其他集合
  82. PL/SQL表的特点
  83. PL/SQL表和DML语句
  84. 声明PL/SQL表
  85. 引用和修改PL/SQL表中的行
  86. 填充PL/SQL表中的行
  87. 清除PL/SQL表
  88. PL/SQL 2.3发行版中PL/SQL表的增强功能
  89. 使用PL/SQL表
  90. 第三部分 内置函数
  91. 第十一章 字符函数
  92. 字符函数的描述
  93. 字符函数的示例
  94. 第十二章 日期函数
  95. 日期函数的描述
  96. 日期函数的示例
  97. 第十三章 数字、LOB和其他函数
  98. 数字函数的描述
  99. LOB 函数的描述
  100. 其他函数的描述
  101. 第十四章 转换函数
  102. 转换格式
  103. 转换函数的描述
  104. 转换函数的实例
  105. 第四部分 模块化的代码
  106. 第十五章 过程和函数
  107. 模块化的代码
  108. PL/SQL块结构的回顾
  109. 匿名PL/SQL块
  110. 过程
  111. 函数
  112. 参数
  113. 局部模块
  114. 模块的重载
  115. 提前声明
  116. 着手实现模块化吧!
  117. 第十六章 包
  118. 包的优点
  119. 包结构概览
  120. 包说明
  121. 包体
  122. 包数据
  123. 包初始化
  124. 第十七章 在SQL中调用PL/SQL函数
  125. 存在的问题
  126. 在SQL中调用存储函数的语法
  127. 在SQL中使用存储函数的要求
  128. 在SQL中使用PL/SQL函数的限制
  129. 在SQL中调用打包的函数
  130. 列/函数名的优先级
  131. 在SQL中调用PL/SQL函数的事实
  132. 嵌入PL/SQL的示例
  133. 第五部分 PL/SQL8的新功能
  134. 第十八章 对象类型
  135. Oracle8对象的简介
  136. Oracle对象的例子
  137. 创建对象类型的语法
  138. 在PL/SQL和SQL中操纵对象
  139. 修改持久对象
  140. 对象的内部管理
  141. 使用对象选项
  142. 第十九章 嵌套表和VARRAY
  143. 集合类型
  144. 建立新的集合
  145. 声明集合数据类型的语法
  146. 使用集合
  147. 集合伪函数
  148. 集合的内置函数与过程
  149. PL/SQL到服务器集成的示例
  150. 集合的内部管理
  151. 应该使用哪种集合类型?
  152. 第二十章 对象视图
  153. 举例:使用对象视图
  154. INSTEAD OF触发器
  155. 对象视图的语法
  156. 对象视图与对象表之间的区别
  157. 不是所有使用对象的视图都是对象视图
  158. 计划的演变
  159. 对象视图的内部管理
  160. 后记:使用BFILE数据类型
  161. 第二十一章 外部过程
  162. 外部过程简介
  163. 创建一个外部过程的步骤
  164. 外部过程的语法
  165. 映射参数
  166. OCI服务例程
  167. 外部过程的内部管理
  168. 实例
  169. 第六部分 使PL/SQL程序正常工作
  170. 第二十二章 代码设计的技巧
  171. 选择有意义的模块名和参数名
  172. 建立最具功能性的函数
  173. 充分利用局部模块化
  174. 注意不带任何参数的模块
  175. 创建独立的模块
  176. 构造抽象数据类型
  177. 参数设计的技巧
  178. 第二十三章 管理数据库中的代码
  179. 执行存储代码
  180. 事务处理的完整性和执行权限
  181. 模块验证与依赖关系管理
  182. 远程过程调用
  183. 利用SQL*Plus管理存储对象
  184. 使用SQL检查存储对象
  185. 加密存储代码
  186. 第二十四章 调试PL/SQL
  187. 错误的调试方法
  188. 调试技巧与策略
  189. 第二十五章 调整PL/SQL应用程序
  190. 分析程序的性能
  191. 调整对编译过的代码的访问
  192. 调整对数据的访问
  193. 调整算法
  194. PL/SQL8增强的性能概览
  195. 第二十六章 跟踪PL/SQL的执行
  196. PL/SQL跟踪工具
  197. 为产品支持而跟踪
  198. 自由格式过滤
  199. 结构化的接口过滤
  200. 快速跟踪
  201. 第七部分 附录
  202. 附录一 配套光盘中的内容
  203. 附录二 从PL/SQL 1.1版本调用存储过程
  204. 附录三 内置包
  205. 词汇表
书名:Oracle PL/SQL程序设计(第二版)
译者:林琪, 王宇 译
国内出版社:中国电力出版社
出版时间:2003年06月
页数:1064
书号:7-5083-1117-5
原版书出版商:O'Reilly Media
Steven Feuerstein
 
Steven Feuerstein,世界上Oracle PL/SQL语言领域资深专家之一。他也是本书续篇《Advanced Oracle PL/SQL Programming with Packages》(O\'Reilly出版)的作者,另外还著有《Oracle Built-in Packages》(O\'Reilly出版)。 Steven从1980年开始开发软件,1987年~1992年任职于Oracle公司。他是RevealNet公司(www.revealnet.com)的合伙人,并且是RevealNet产品的首席设计师,包括PL/SQL Knowledge Base和PL/Vision(这是一个预置PL/SQL包的代码库,可以加速基于PL/SQL的应用开发)。可以通过电子邮件feuerstein@revealnet.com与他联系。Steven还是PL/Solutions的总裁,该公司提供PL/Vision和PL/SQL的培训和咨询(www.plsolutions.com)。最后,(在Oracle领域里)他还是SSC的Oracle Practice的联合主管,SSC是一家位于芝加哥的系统管理咨询公司(www.saraswati. com)。 Steven与他的妻子Veva、他的小儿子Eli、两只猫(Sister Itsacat和Moshe Jacobawitz)以及Mercury(一只刚果红色非洲灰鹦鹉)住在位于芝加哥的乔治亚风格的房子里,这栋房子还带有一个罗吉式花园。他的大儿子Chris则在附近忙于做音乐和搞艺术。Steven还是Crossroads基金会董事会的成员,此基金会为芝加哥进行社会性的工作的组织提供支持。
 
 
Bill Pribyl
 
Bill Pribyl,DataCraft公司(www.datacraft.com)的创始人和负责人,在Oracle数据库和应用方面学习和执教的时间已超过10年,而对面向对象技术的研究则可追溯到20世纪80年代中期,当时他与别人合写了一篇关于将实体关系模型应用于面向对象分析的文章。 Bill自认为是Oracle“全才”,他曾在多家身价达数亿美元的公司担任过Oracle数据管理员;领导过在线商务的基于Web应用的开发;使用Oracle复制工具配置过高可用性数据库;帮助过NASA将数据库技术应用于航天飞船仿真软件;而且还用PL/SQL、Developer/2000和Oracle数据库做过开发并教授过有关课程。作为Oracle用户社区的热心支持者,Bill原来还是South Central(美国)Oracle用户组的主席。他同时还是《Select》的总编,《Select》是国际Oracle用户组美国部所出的季刊。他的工作成果刊登在世界各地的Oracle用户组刊物上。他还为《The Official Netscape LiveWire Pro Book》完成了JavaScript 编程实例。 Bill与他的妻子Norma、儿子Johnny、继子Geoffrey、4只猫以及1只达尔马提亚狗居住在他的母校,即德克萨斯州休斯顿的Rice大学旁边。他还为公立中学的孩子们志愿教授一门关于Internet和HTML基础知识的课程。
 
 
本书封面上的动物是蚂蚁。除北极和南极以外,在地球上的各个地方能够发现至少8000种不同种类的蚂蚁。从留在琥珀中的蚂蚁可以看出,这种昆虫在人类出现前的五千万年就已经存在了。
蚁后在其交配期之后会建立新的蚁群(或蚁洞)。在交配期间,蚁后会与多个雄蚁交配。交配之后,雄蚁就会落到地上并死去。对于有些种类的红蚂蚁,蚁后在与雄蚁交配后,会突然把雄蚁咬成两半。之后,蚁后会找到一个没有被居住过的洞并住进去,在此脱去它的翅膀。此后它将无法再飞,而且没有了翅膀它就能够吸收翅膀肌肉作为营养提供给它的卵。它可以在数年间不断地孵卵,孵出数以千计的蚂蚁。
蚂蚁成长过程的三个阶段(卵、幼虫和蛹)均由护蚁照顾,这大约需要花两个月的时间。护蚁要负责喂养、清洗小蚂蚁,还要根据温度的情况把小蚂蚁小心地搬到洞中更暖和或更凉爽的位置。而护蚁又需要由其他工蚁来照顾,工蚁要给护蚁喂其反刍的食物。如果蚁洞遭到其他蚁群或更大动物的入侵,护蚁和工蚁会奋而反击以保护幼蚁。