首页>参考读物>计算机科学与技术>数据库

Oracle9i PL/SQL 程序设计
作者 : (美)Scott Urman
译者 : 陈维军 王蕾 等
丛书名 : Oracle技术丛书
出版日期 : 2002-04-01
ISBN : 7-111-09950-8
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 444
开本 : 16开
原书名 : Oracle9i PL/SQL Programming
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书介绍Oracle数据库不同版本中PL/SQL语言的主要特性,以及如何在不同开发环境中升发、测试和调试PL/SQL程序。主要内容包括PL/SQL的使用方法、错误处理、集合、子程序和包以及高级特性等详细信息。本书附带光盘包括书中范例代码和开发环境。

图书前言

Oracle是一种功能极其强大,并且非常灵活的关系数据库系统。就是因为这种强大的功能和灵活性,致使Oracle非常复杂。为了实现基于Oracle设计有用的应用程序,则有必要理解Oracle是如何操作存储在系统中的数据的。PL/SQL就是这样一种实现数据操作的重要工具,你不仅可以在Oracle内部使用它,而且可以在自己的应用程序中应用它。PL/SQL在许多环境下都是可用的,并且在不同环境下具有不同的优势。
  我所编写的第一本有关PL/SQL的图书是《Oracle PL/SQL Programming》,在1996年出版(英文版)。第一版主要涵盖了Oracle 7 Realease 7.3中的PL/SQL 2.3版本--这是那时最新版本的Oracle数据库和PL/SQL。有关PL/SQL的第H本书是1997年出版(英文版)的《Oracles PL/SQL Programming》,该书在第一版本的基础上,进一步包含了Oracle8 Realease8.0的最新信息,当时Oracle8i Realease 8.0是最新的Oracle版本。有关PL/SQL的第三本书是2000年出版(英文版)的《 Oracle8i Advanced PL/SQL Programming》。第三本书注重强调高级特性,所涵盖版本最高为Oracle8i。
  本书在以前版本的基础上继续扩展,包含了许多更新内容,集成了Oraclegi的特性。相对于以前的版本,本书增补了许多介绍性材料。同时,本书和《Oracle8i Advanced Programming》完全涵盖了PL/SQL语言。
  本书包含的新内容
  首先,这个版本的PL/SQL编程书与前几版本的主要的差别在于本书提供了Oracle9i的新特性。在本书中可以见到对这些新特性的讨论。比如,本书第3章在讨论基本PL/SQL语法的同时讨论了CASE语句( Oracle9i的一个新特性)。至于PL/SQL开发环境,本书包含了以前版本中提供的所有开发工具的新版本,以及一个新的IDE。
  读者对象
  我们设计本书的定位是用户指南和PL/SQL参考手册。本书适合于所有Oracle用户,尤其适合于那些以前从未使用过PL/SQL的用户。我们在第12章更详细地讨论了一些高级内容。
  如何使用本书
  本书包含12章和3个附录。其中章节被划分成三部分:概述和开发环境、PL/SQL基本特性,以及更多的PL/SQL特性。
  第一部分:概述及开发环境
  本书的第一部分介绍了PL/SQL和PL/SQL所运行的环境,还讨论了附赠光盘所提供的PL/SQL开发环境。
  第1章:PL/SQL简介
  第1章介绍了PL/SQL,并且描述了该语言的一些主要特性,讨论了不同的PL/SQL版本,以及数据库版本和PL/SQL版本的对应关系。这一章结尾讨论了一个数据库模式,我们全书都使用该范例。
  第2章:开发及运行环境
  PL/SQL可以运行在许多不同类型的环境下,不仅可以运行在客户端,也可以运行在服务器端。在这一章中,我们讨论了PL/SQL引擎的不同位置,以及不同引擎之间的通信,还讨论了附赠光盘所包含的开发工具,包括屏幕抓图。
  第二部分:PL/SQL基本特性
  这部分讨论了PL/SQL的关系型特性,包括该语言的语法和数据类型,以及如何使用SQL。内置的SQL函数、游标、错误处理和集合。
  第3章:PL/SQL基础
  在讨论任何编程语言时,首先讨论的肯定是该语言的语法和数据类型。在这一章中,我们将了解PL/SQL提供的所有数据类型,以及它所支持的控制结构。
  第4章:在PL/SQL中使用 SQL
  第4章讨论了PL/SQL的过程化结构。正是SQL的有效性,才使该语言功能强大和有用。在这一章中,还讨论了SQL查询和DML语句的用法,以及事务机制。
  第5章:内置SQL函数
  SQL语言有大量的内置函数,这些内置函数可以进一步增强该语言的作用。我们将在这一章学习这些函数,包括在不同数据库版本中的函数。
  第6章:游标
  游标被用于处理多数据行查询。借助于游标,你可以循环处理结果集,并且依次处理每个数据行。在这一章中,我们讨论了游标的语法,并且讨论了不同类型的检索循环,还讨论了如何使用游标变量。
  第7章:错误处理
  如果没有智能处理运行时错误的能力,则任何程序都不是完善的。PL/SQL支持异常的使用(类似于Java),其中异常提供了处理任何运行时问题的具体结构。在这一章中,我们将详细地讨论异常的工作机制和异常传播。
  第8章:集合
  集合是PL/SQL对象组,并且包含index-by表、嵌套表和可变数组。这些数据类型非常类似于其他语言的数组。我们将讨论如何在数据库中存储嵌套表和数组,以及有关的集合方法。
  第三部分:更多PL/SQL特性
  本书的第三部分讨论了如何使用过程、包、函数和触发器,还将简单讨论PL/SQL的高级特性。
  第9章:创建过程、函数和包
  在第9章中,我们将讨论怎样创建过程和函数(通称为子程序),以及如何在数据库中存储它们;还将讨论了创建于程序和包的语法,以及参数的传递机制。
  第10章:使用过程、函数和包
  第10章进一步扩展了第9章的内容,讨论了有关子程序和包的其他特性,包括如何从SQL语句中调用,以及相互间的依赖关系;还将讨论包怎样与共享池相互交互。
  第11章:数据库触发器
  触发器是特殊类型的PL/SQL语句块,无论何时触发事件发生时,相应触发器都会自动执行。触发事件可能是诸如INSERT语句的DML操作、DDL语句或者系统事件。触发器也可以代替特定DML语句被执行。我们将在这一章详细讨论这些触发器。
  第12章:高级特性
  第12章简单讨论了PL/SQL的一些高级特性。这包括对象类型、动态SQL、LOB和管道化函数;还将讨论一些更常见的内置包,比如DBMS_ALERT、DBMS_JOB、DBMS_LOB。DBMS_PIPE、DBMS_SQL和UTL_FILE。同时,还将讨论Oracle9i对通信包UTL_TCP。UTL_HTTP、UTL_SMTP和UTL_INADDR的增强特性。
  附录
  附录部分将提供有关PL/SQL的有用参考信息。
  附录A:包指南
  该附录讨论了Oracle中有效的内置包。这些包可以大大地扩展该语言的功能。
  附录B:PL/SQL保留字
  该附录给出PL/SQL的所有保留字。在命名变量和其他PL/SQL对象时,你应该避免使用它们。
  附录C:数据字典
  该附录总结许多数据字典视图,尤其是那些与PL/SQL程序员最相关的数据字典视图。


作者简介

(美)Scott Urman:暂无简介

译者简介

陈维军 王蕾 等:暂无简介

译者序

本书是由Oracle畅销书作者所编写的,他多年来始终注重PL/SQL的研究工作,编写了多部有关PL/SQL的图书。本书是以前所编写图书的升级版本,包含了最新的Oracle版本和信息。本书不仅适用于PL/SQL的初学者,而且适合于Oracle开发人员参考;它不仅非常实用,而且是非常宝贵的参考资源!
  我们很荣幸能够有机会承担本书的翻译工作。在翻译过程中,我们经常为一句话、一个术语进行反复的讨论,并查阅了大量的资料,力图使本书的翻译能正确、贴切地反映原文的意思,同时注意使句子、段落符合中国人的语言习惯。我们真挚地希望你能够从本书中有所收获,这是作者的初衷,也是我们的愿望!
  本书由陈维军、王蕾组织翻译,万方工作室的全体同仁都参加了本书的翻译、校正和输入等工作。具体参加本书翻译、录排、校对工作的人员为:陈维军、王蕾、韩冰、宋红利、田蕴哲、丁大、牛志奇、刘艳、刘砚、黄建立、丁胜利、蒋雯丽、葛丽、罗贤锋、罗天浩、王洞宾、赵文凯、王荣、王慧英、黄慧萍、李明、徐艳华、李小萍、吴莹、文瑶等。本书的出版是集体劳动的结晶,在此特别感谢万方工作室的全体工作人员。
  由于时间仓促,且译者经验和水平有限,译文难免有不妥之处,恳请读者批评指正!
  万方工作室
  2002年1月

图书目录

第一部分 概述及开发环境
第1章 PL/SQL概述
1. 1 为什么使用PL/SQL
l.l.1 PL/SQL和网络流量
1. 1.2 标准
1. 2 PL/SQL的功能特性
1. 2. 1 语句块结构
1.2.2 错误处理
1. 2. 3 变量和类型
1. 2. 4 条件语句
1.2.5 循环结构
1.2. 6 游标
1. 2.7 过程和函数
1. 2.8 包
1. 2. 9 集合
1. 3 本书使用的约定
1.3. 1 PL/SQL和Oracle版本
1. 3. 2 Oracle文档
l. 3. 3 光盘内容
1.4 范例样表
1. 5 小结
第2章 开发及运行环境
2.l 应用程序模型和PL/SQL
2. 1. l 两层模型
2. 1. 2 三层模型
2. 1. 3 连接服务器
2.2 PLISQL开发工具
2. 2. 1 SQL*Plus
2. 2. 2 Rapid SQL
2. 2.3 DBPartner Debugger
2. 2. 4 SQL Navigator
2. 2. 5 TOAD
2. 2.6 SQL-Programmer
2. 2.7 PL/SQL Developer
2.2.8 开发工具小结
2.3 小结
第二部分 PL/SQL基本特性
第3章 PL/SQL基础
3. 1 PL/SQL语句块
3.2 同法单元
3. 2. l 标识符
3. 2. 2 分界符
3.2. 3 文字
3.2. 4 注释
3.3 变量声明
3.3. 1 声明语法
3.3. 2 变量初始化
3.4 PL/SQL类型
3.4.1 标量类型
3. 4.2 复合类型
3. 4.3 引用类型
3. 4.4 LOB类型
3. 4.5 对象类型
3. 4.6 使用%TYPE
3. 4. 7 用户定义于类型
3.4. 8 数据类型之间的转换
3.4. 9 变量作用域和可见性
3.5 表达式和运算符
3.5. l 赋值
3.5. 2 表达式
3. 6 PL/SQL控制结构
3.6.1 IF-THEN.ELSE
3.6.2 CASE
3. 6.3 循环
3.6.4 GOTO和标号
3. 6. 5 编译指示
3. 7 PL/SQL记录
3. 7.1 记录赋值
3. 7.2 使用%ROWTYPE
3. 8 PL/SQL风格指南
3.8.l 注释风格
3.8. 2 变量名风格
3. 8. 3 大写风格
3. 8. 4 缩进风格
3.8.5 常见风格
3. 9 小结
第4章 PL/SQL中的SQL
4. 1 SQL语句
4.l.l 在PL/SQL中使用SQL
4. 1. 2 使用动态SQL
4.2 在PL/SQL中使用DML
4. 2.1 SELECT
4.2.2 INSERT
4.2. 3 UPDATE
4.2.4 DELETE
4.2.5 WHERE子句
4. 2. 6 批绑定
4.2.7 RETURNING子句
4. 2. 8 表引用
4. 2. 9 数据库链接
4. 2.10 同义词
4. 3 伪列
4. 3.1 CURRVAL和NEXTVAL
4. 3. 2 LEVEL
4.3.3 ROWID
4.3.4 ROWNUM
4. 4 GRANT、REVOKE和权限
4.4. 1 对象和系统权限
4. 4.2 GRANT和REVOKE
4.4. 3 角色
4. 5 事务控制
4.5.1 COMMIT和ROLLBACK
4. 5.2 保存点
4.5.3 事务和语句块
4.5.4 自治事务
4. 6 小结
第5章 内置SQL函数
5. l 概述
5.2 返回字符值的字符函数
5.2. 1 SUBSTR、SUBSTRB、SUBSTRC、SUBSTRZ和SUBSTR4
5. 2.2 SOUNDEX
5. 3 返回数字值的字符函数
5. 3.1 INSTR、 INSTRB、 INSTRC、INSTRZ和INSTR4
5.3.2 LENGTH、LENGTHB、LENGTHC、LENGTHZ和LENGTH4
5.4 NLS函数
5. 5 数字函数
5. 6 日期和时间函数
5.7 转换函数
5.7.1 TO_CHAR(日期和日期时间)
5.7.2 TO_CHAR(数字)
5. 7.3 TO_DATE
5. 7. 4 TO_NUMBER
5.7.5 TO_HIMESTAMP和TO_TIMESTAMP_TZ
5. 8 聚集和分析函数
5.9 其他函数
5. 9. 1 DUMP
5.9.2 USERENV
5.10 小结
第6章 游标
6.l 什么是游标
6. 1. 1 处理显式游标
6. 1. 2 处理隐式游标
6. 2 游标检索循环
6. 2. 1 简单循环
6. 2. 2 WHILE循环
6. 2. 3 游标FOR循环
6.2.4 NO_DATA_FOUND与%NOTFOUND
6. 2. 5 SELECT FOR UPDATE游标
6. 3 游标变量
6.3. 1 声明游标变量
6. 3. 2 为游标变量分配存储空间
6. 3. 3 为查询打开游标变量
6. 3. 4 关闭游标变量
6. 3. 5 游标变量范例一
6. 3. 6 游标变更范例_二
6. 3. 7 使用游标变量的限制
6. 4 小结
第7章 错误处理
7. 1 什么是异常
7. 1. 1 声明异常
7. 1. 2 抛出异常
7.1. 3 处理异常
7. 1. 4 EXCEPTION_INIT编译指示
7.l.5 使用RAISE_APPLICATION_ERROR
7. 2 异常传播
7.2. 1 可执行部分产生的异常
7. 2. 2 在声明部分出现的异常
7. 2. 3 在异常部分产生的异常
7. 3 异常准则
7. 3. 1 异常的作用域
7. 3.2 避免未处理异常
7. 3.3 指定错误位置
7.4 通用错误处理器
7. 5 小结
第8章 集合
8.1 声明和使用集合类型
8.1. 1 index-by表
8. 1. 2 嵌套表
8. 1.3 可变数组
8. 1. 4 多层集合
8. 1. 5 集合类型之间的比较
8. 2 数据库中的集合
8.2.1 存储集合的隐含式
8.2.2 操作整个集合
8. 2.3 操作单个集合元素
8. 3 集合方法
8.3.1 EXISTS
8.3.2 COUNT
8. 3. 3 LIMIT
8. 3. 4 FIRST和LAST
8.3.5 NEXT和PRIOR
8. 3. 6 EXTEND
8. 3. 7 TRIM
8. 3. 8 DELETE
8. 4 小结
第三部分 更多PL/SQL特性
第9章 创建过程、函数和包
9.l 过程与函数
9. 1. 1 创建子程序
9. 1. 2 子程序参数
9.1.3 CALL语句
9. 1.4 过程与函数
9. 2 包
9.2. 1 包的说明
9. 2.2 包体
9. 2. 3 包和范围
9. 2. 4 重载封装子程序
9. 2.5 包的初始化
9. 3 小结
第10章 使用过程、函数和包
10.1 子程序位置
10. 1.l 存储子程序和数据字典
10. 1. 2 局部子程序
10. 1.3 存储子程序与局部子程序
10.2 存储子程序和包的考虑事项
10. 2. 1 子程序依赖性
10.2.2 包运行时状态
10.2. 3 特权和存储子程序
10. 3 在SQL语句中使用存储函数
10.3. 1 纯度等级
10.3.2 缺省参数
10. 3. 3 在Oracle8i中从SQL调用存储函数
10. 4 在共享池中的锁定
10.4.1 KEEP
10.4. 2 UNKEEP
10. 4. 3 SIZES
10.4. 4 ABORTED_REQUEST THRESHOLD
10. 5 小结
第11章 数据库触发器
11.l 触发器的类型
11. 2 创建触发器
11. 2. 1 创建DML触发器
11. 2. 2 创建Instead-Of触发器
11. 2.3 创建系统触发器
11. 2.4 其他触发器问题
11.2. 5 触发器和数据字典
11.3 变异表
11.3. 1 变异表的例子
11. 3. 2 变异表错误的解决
11.4 小结
第12章 高级特性
12. 1 语言特性
12.1. 1 外部例程
12.l.2 本地动态SQL
12. 1. 3 成批绑定
12. 1.4 对象类型
12.1. 5 大对象
12. 1.6 管道化表函数
12. 2 高级包
12. 2. l DBMS_SQL
12. 2. 2 DBMS_PIPE
12. 2.3 DBMS_ALERT
12. 2.4 UTL_FILE
12. 2.5 UTL_TCP
12.2. 6 UTL_SMTP
12.2. 7 UTL_HTTP
12. 2. 8 UTL_INADDR
12. 2. 9 DBMS_JOB
12. 2. 10 DBMS_LOB
12. 3 小结
附录
附录A 包指南
附录B PL/SQL保留字
附录C 数据字典


教学资源推荐
作者: Jiawei Han,Micheline Kamber
作者: W.H.Inmon
作者: 主编  魏善沛 何海江
参考读物推荐
作者: 陈畅亮 吴一晴 著
作者: George Koch
作者: (美)Chris Todman