简介
本书系Oracle权威专家的精心力作,全面介绍了PL/SQL的基础知识、特性、功能和使用技巧,解释了嵌入式程序的语义和语法,指导读者创建动态客户端/服务器应用程序,并实现可与Oracle数据库交互、能执行复杂计算和错误处理的PL/SQL程序。本书不仅内容丰富,结构合理,而且提供了大量的代码和图例,以帮助读者在实践中提升自己的PL/SQL编程技能。
目录
第Ⅰ部分 绪论
第1章 PL/SQL入门
1.1 程序设计语言简介
1.2 什么是PL/SQL
1.2.1 结构化查询语言SQL
1.2.2 关系数据库简介
1.2.3 PL/SQL与SQL
1.2.4 PL/SQL与Java
1.2.5 PL/SQL的历史和功能
1.3 语言基础
1.3.1 匿名块(Anonymous Blocks)
1.3.2 过程(Procedure)
1.3.3 函数(Function)
1.3.4 包(Package)
1.3.5 对象类型(Object Type)
1.4 PL/SQL语句的处理
1.4.1 解释执行
1.4.2 本地编译
1.5 如何充分使用本书
1.5.1 读者范围
1.5.2 目标
1.5.3 范围
1.5.4 先决条件
1.5.5 格式约定
1.5.6 示例
1.6 小结
第2章 使用SQL*Plus和JDeveloper
2.1 SQL*Plus
2.1.1 连接数据库实例
2.1.2 测试连接
2.1.3 使用SQL*Plus
2.1.4 更改SQL*Plus会话设置
2.1.5 从文件中运行脚本
2.1.6 使用SQL*Plus和PL/SQL在屏幕上输出内容
2.2 JDeveloper
2.2.1 JDeveloper的安装
2.2.2 在JDeveloper中使用PL/SQL
2.3 小结
第3章 PL/SQL基础知识
3.1 PL/SQL代码块
3.1.1 代码块的基本结构
3.1.2 匿名块
3.1.3 命名块
3.1.4 嵌套块
3.1.5 触发器
3.1.6 对象类型
3.2 PL/SQL的语言规则与约定
3.3 PL/SQL的数据类型
3.3.1 标量类型
3.3.2 字符/字符串类型
3.3.3 数值类型
3.3.4 布尔类型
3.3.5 日期/时间类型
3.3.6 复合类型
3.3.7 引用类型
3.3.8 LOB类型
3.4 使用变量
3.4.1 %TYPE
3.4.2 %ROWTYPE
3.4.3 变量的生存范围
3.4.4 绑定变量
3.5 代码隐藏功能
3.6 表达式
3.6.1 赋值操作符
3.6.2 串联操作符
3.7 程序流的控制
3.7.1 条件判断语句
3.7.2 循环执行
3.7.3 使用GOTO语句导航代码的执行顺序
3.8 小结
第4章 PL/SQL与SQL
4.1 事务处理
4.1.1 事务与锁定
4.1.2 自治事务
4.1.3 事务设置
4.2 数据检索
4.2.1 SQL SELECT语句
4.2.2 模式匹配
4.2.3 信息检索
4.3 游标
4.3.1 游标的工作过程
4.3.2 显式游标
4.3.3 隐式游标
4.3.4 游标变量
4.3.5 游标子查询
4.3.6 打开游标
4.4 DML与DDL
4.4.1 预编译
4.4.2 使用DML控制数据
4.4.3 动态SQL简介
4.5 ROWID和ROWNUM的用法
4.5.1 ROWID
4.5.2 ROWNUM
4.6 内置的SQL函数
4.6.1 字符函数
4.6.2 数字函数
4.6.3 日期函数
4.6.4 转换函数
4.6.5 错误函数
4.6.6 其他函数
4.7 小结
第5章 记录
5.1 记录概述
5.2 记录的使用方法
5.2.1 记录类型的定义
5.2.2 以形参的形式定义记录类型
5.2.3 以形参的形式定义和使用对象类型
5.2.4 从函数中返回记录类型的值
5.2.5 将记录类型作为函数返回值的定义和使用方法
5.2.6 将对象类型作为函数返回值的定义和使用方法
5.2.7 检验记录类型的工作过程
5.3 小结
第6章 集合
6.1 集合简介
6.2 集合的使用方法
6.2.1 Varrays集合的使用方法
6.2.2 嵌套表的使用方法
6.2.3 联合数组的使用方法
6.3 Oracle 10g的集合API
6.3.1 COUNT方法
6.3.2 DELETE方法
6.3.3 EXISTS方法
6.3.4 EXTEND方法
6.3.5 FIRST方法
6.3.6 LAST方法
6.3.7 LIMIT方法
6.3.8 NEXT方法
6.3.9 PRIOR方法
6.3.10 TRIM方法
6.4 小结
第7章 错误处理
7.1 什么是异常
7.1.1 异常的声明
7.1.2 异常的引发
7.1.3 异常的处理
7.1.4 EXCEPTION_INIT编译器指令
7.1.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.3.4 异常与事务
7.3.5 异常代码的编写风格
7.4 小结
第8章 过程、函数和包的创建
8.1 过程和函数
8.1.1 子程序的创建
8.1.2 子程序的参数
8.1.3 CALL语句
8.1.4 过程和函数的比较
8.2 包
8.2.1 包规范
8.2.2 包主体
8.2.3 包和范围
8.2.4 包子程序的重载
8.2.5 包的初始化
8.3 小结
第9章 过程、函数和包的应用
9.1 子程序的存储位置
9.1.1 存储子程序与数据字典
9.1.2 局部子程序
9.1.3 存储子程序与局部子程序
9.2 存储子程序和包的注意事项
9.2.1 子程序的依赖关系
9.2.2 包的运行时状态
9.2.3 权限与存储子程序
9.3 存储函数与SQL语句
9.3.1 单值函数
9.3.2 多值函数
9.4 本地编译
9.5 在共享池中驻留
9.5.1 KEEP过程
9.5.2 UNKEEP过程
9.5.3 SIZES过程
9.5.4 ABORTED_REQUEST_THRESHOLD过程
9.5.5 PL/SQL Wrapper
9.6 小结
第10章 数据库触发器
10.1 触发器的分类
10.1.1 DML触发器
10.1.2 Instead-of触发器
10.1.3 系统触发器
10.2 创建触发器
10.2.1 创建DML触发器
10.2.2 创建Instead-of触发器
10.2.3 创建系统触发器
10.2.4 触发器的其他一些问题
10.2.5 触发器与数据字典
10.3 变异表
10.3.1 变异表示例
10.3.2 变异表错误的工作区
10.4 小结
第Ⅱ部分 PL/SQL的高级特性
第11章 会话间通信
11.1 会话间通信简介
11.1.1 需要永久性或临时性的结构体
11.1.2 不需要永久性或临时性的结构体
11.2 DBMS_PIPE内置包
11.2.1 DBMS_PIPE包简介
11.2.2 DBMS_PIPE包的定义
11.2.3 DBMS_PIPE包的使用
11.3 DBMS_ALERT内置包
11.3.1 DBMS_ALERT包简介
11.3.2 DBMS_ALERT包的定义
11.3.3 DBMS_ALERT包的使用
11.4 小结
第12章 外部例程
12.1 外部过程简介
12.2 外部例程的工作过程
12.2.1 定义exproc的结构
12.2.2 定义extproc的Oracle NetServices配置
12.2.3 定义多线程的外部过程代理
12.2.4 C语言共享库的工作过程
12.2.5 Java共享库的工作过程
12.3 解决共享库的错误
12.3.1 侦听器或环境的配置
12.3.2 共享库或PL/SQL库包装器的配置
12.4 小结
第13章 动态SQL
13.1 动态SQL简介
13.2 本地动态SQL使用方法
13.2.1 不带绑定变量的DDL和DML语句的使用方法
13.2.2 使用DML和已知的绑定变量列表
13.2.3 DQL的使用方法
13.3 Oracle的DBMS_SQL内置包的使用方法
13.3.1 不带绑定变量的DDL和DML语句的使用方法
13.3.2 带绑定变量已知列表的DML语句的使用方法
13.3.3 DQL的使用方法
13.4 小结
第14章 对象概览
14.1 面向对象程序设计简介
14.2 对象类型概览
14.3 创建对象类型
14.3.1 对象类型规范
14.3.2 对象类型主体
14.4 对象类型继承
14.5 属性链
14.6 更改
14.7 小结
第15章 数据库中的对象
15.1 数据库中对象的简介
15.1.1 对象表
15.1.2 列对象
15.1.3 对象视图
15.2 使用SQL和PL/SQL访问持久对象
15.2.1 对象表
15.2.2 访问列对象
15.2.3 访问对象视图
15.2.4 与对象相关的函数和操作符
15.3 维护持久对象
15.4 小结
第16章 大对象
16.1 大对象简介
16.1.1 特性比较
16.1.2 LOB的种类
16.1.3 LOB的结构
16.1.4 内部LOB的存储
16.1.5 外部LOB的存储
16.1.6 临时LOB的存储
16.1.7 从LONG到LOB的移植
16.2 LOB和SQL
16.2.1 操作内部持久LOB的SQL
16.2.2 外部LOB--BFILE
16.3 LOB和PL/SQL
16.3.1 DBMS_LOB
16.3.2 APPEND
16.3.3 COMPARE
16.3.4 CONVERTTOBLOB/CONVERTOCLOB
16.3.5 BFILE_FILEEXISTS
16.3.6 BFILE_FILEOPEN/OPEN
16.3.7 BFILE_FILEISOPEN/ISOPEN
16.3.8 BFILE_FILECLOSE /CLOSE/FILECLOSEALL
16.3.9 LOADFROMFILE/LOAD-CLOBFROMFILE/LOAD-BLOBFROMFILE
16.4 执行性能
16.4.1 RETURNING子句
16.4.2 索引
16.5 小结
第17章 任务调度
17.1 DBMS_JOB简介
17.1.1 SUBMIT过程
17.1.2 BROKEN过程
17.1.3 RUN过程
17.1.4 CHANGE过程
17.1.5 REMOVE过程
17.2 Oracle调度器
17.2.1 术语
17.2.2 DBMS_SCHEDULER的使用方法
17.2.3 从DBMS_JOB移植
17.2.4 删除作业
17.3 小结
第Ⅲ部分 附录
附录A PL/SQL的保留字
附录B 内置包简介
第1章 PL/SQL入门
1.1 程序设计语言简介
1.2 什么是PL/SQL
1.2.1 结构化查询语言SQL
1.2.2 关系数据库简介
1.2.3 PL/SQL与SQL
1.2.4 PL/SQL与Java
1.2.5 PL/SQL的历史和功能
1.3 语言基础
1.3.1 匿名块(Anonymous Blocks)
1.3.2 过程(Procedure)
1.3.3 函数(Function)
1.3.4 包(Package)
1.3.5 对象类型(Object Type)
1.4 PL/SQL语句的处理
1.4.1 解释执行
1.4.2 本地编译
1.5 如何充分使用本书
1.5.1 读者范围
1.5.2 目标
1.5.3 范围
1.5.4 先决条件
1.5.5 格式约定
1.5.6 示例
1.6 小结
第2章 使用SQL*Plus和JDeveloper
2.1 SQL*Plus
2.1.1 连接数据库实例
2.1.2 测试连接
2.1.3 使用SQL*Plus
2.1.4 更改SQL*Plus会话设置
2.1.5 从文件中运行脚本
2.1.6 使用SQL*Plus和PL/SQL在屏幕上输出内容
2.2 JDeveloper
2.2.1 JDeveloper的安装
2.2.2 在JDeveloper中使用PL/SQL
2.3 小结
第3章 PL/SQL基础知识
3.1 PL/SQL代码块
3.1.1 代码块的基本结构
3.1.2 匿名块
3.1.3 命名块
3.1.4 嵌套块
3.1.5 触发器
3.1.6 对象类型
3.2 PL/SQL的语言规则与约定
3.3 PL/SQL的数据类型
3.3.1 标量类型
3.3.2 字符/字符串类型
3.3.3 数值类型
3.3.4 布尔类型
3.3.5 日期/时间类型
3.3.6 复合类型
3.3.7 引用类型
3.3.8 LOB类型
3.4 使用变量
3.4.1 %TYPE
3.4.2 %ROWTYPE
3.4.3 变量的生存范围
3.4.4 绑定变量
3.5 代码隐藏功能
3.6 表达式
3.6.1 赋值操作符
3.6.2 串联操作符
3.7 程序流的控制
3.7.1 条件判断语句
3.7.2 循环执行
3.7.3 使用GOTO语句导航代码的执行顺序
3.8 小结
第4章 PL/SQL与SQL
4.1 事务处理
4.1.1 事务与锁定
4.1.2 自治事务
4.1.3 事务设置
4.2 数据检索
4.2.1 SQL SELECT语句
4.2.2 模式匹配
4.2.3 信息检索
4.3 游标
4.3.1 游标的工作过程
4.3.2 显式游标
4.3.3 隐式游标
4.3.4 游标变量
4.3.5 游标子查询
4.3.6 打开游标
4.4 DML与DDL
4.4.1 预编译
4.4.2 使用DML控制数据
4.4.3 动态SQL简介
4.5 ROWID和ROWNUM的用法
4.5.1 ROWID
4.5.2 ROWNUM
4.6 内置的SQL函数
4.6.1 字符函数
4.6.2 数字函数
4.6.3 日期函数
4.6.4 转换函数
4.6.5 错误函数
4.6.6 其他函数
4.7 小结
第5章 记录
5.1 记录概述
5.2 记录的使用方法
5.2.1 记录类型的定义
5.2.2 以形参的形式定义记录类型
5.2.3 以形参的形式定义和使用对象类型
5.2.4 从函数中返回记录类型的值
5.2.5 将记录类型作为函数返回值的定义和使用方法
5.2.6 将对象类型作为函数返回值的定义和使用方法
5.2.7 检验记录类型的工作过程
5.3 小结
第6章 集合
6.1 集合简介
6.2 集合的使用方法
6.2.1 Varrays集合的使用方法
6.2.2 嵌套表的使用方法
6.2.3 联合数组的使用方法
6.3 Oracle 10g的集合API
6.3.1 COUNT方法
6.3.2 DELETE方法
6.3.3 EXISTS方法
6.3.4 EXTEND方法
6.3.5 FIRST方法
6.3.6 LAST方法
6.3.7 LIMIT方法
6.3.8 NEXT方法
6.3.9 PRIOR方法
6.3.10 TRIM方法
6.4 小结
第7章 错误处理
7.1 什么是异常
7.1.1 异常的声明
7.1.2 异常的引发
7.1.3 异常的处理
7.1.4 EXCEPTION_INIT编译器指令
7.1.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.3.4 异常与事务
7.3.5 异常代码的编写风格
7.4 小结
第8章 过程、函数和包的创建
8.1 过程和函数
8.1.1 子程序的创建
8.1.2 子程序的参数
8.1.3 CALL语句
8.1.4 过程和函数的比较
8.2 包
8.2.1 包规范
8.2.2 包主体
8.2.3 包和范围
8.2.4 包子程序的重载
8.2.5 包的初始化
8.3 小结
第9章 过程、函数和包的应用
9.1 子程序的存储位置
9.1.1 存储子程序与数据字典
9.1.2 局部子程序
9.1.3 存储子程序与局部子程序
9.2 存储子程序和包的注意事项
9.2.1 子程序的依赖关系
9.2.2 包的运行时状态
9.2.3 权限与存储子程序
9.3 存储函数与SQL语句
9.3.1 单值函数
9.3.2 多值函数
9.4 本地编译
9.5 在共享池中驻留
9.5.1 KEEP过程
9.5.2 UNKEEP过程
9.5.3 SIZES过程
9.5.4 ABORTED_REQUEST_THRESHOLD过程
9.5.5 PL/SQL Wrapper
9.6 小结
第10章 数据库触发器
10.1 触发器的分类
10.1.1 DML触发器
10.1.2 Instead-of触发器
10.1.3 系统触发器
10.2 创建触发器
10.2.1 创建DML触发器
10.2.2 创建Instead-of触发器
10.2.3 创建系统触发器
10.2.4 触发器的其他一些问题
10.2.5 触发器与数据字典
10.3 变异表
10.3.1 变异表示例
10.3.2 变异表错误的工作区
10.4 小结
第Ⅱ部分 PL/SQL的高级特性
第11章 会话间通信
11.1 会话间通信简介
11.1.1 需要永久性或临时性的结构体
11.1.2 不需要永久性或临时性的结构体
11.2 DBMS_PIPE内置包
11.2.1 DBMS_PIPE包简介
11.2.2 DBMS_PIPE包的定义
11.2.3 DBMS_PIPE包的使用
11.3 DBMS_ALERT内置包
11.3.1 DBMS_ALERT包简介
11.3.2 DBMS_ALERT包的定义
11.3.3 DBMS_ALERT包的使用
11.4 小结
第12章 外部例程
12.1 外部过程简介
12.2 外部例程的工作过程
12.2.1 定义exproc的结构
12.2.2 定义extproc的Oracle NetServices配置
12.2.3 定义多线程的外部过程代理
12.2.4 C语言共享库的工作过程
12.2.5 Java共享库的工作过程
12.3 解决共享库的错误
12.3.1 侦听器或环境的配置
12.3.2 共享库或PL/SQL库包装器的配置
12.4 小结
第13章 动态SQL
13.1 动态SQL简介
13.2 本地动态SQL使用方法
13.2.1 不带绑定变量的DDL和DML语句的使用方法
13.2.2 使用DML和已知的绑定变量列表
13.2.3 DQL的使用方法
13.3 Oracle的DBMS_SQL内置包的使用方法
13.3.1 不带绑定变量的DDL和DML语句的使用方法
13.3.2 带绑定变量已知列表的DML语句的使用方法
13.3.3 DQL的使用方法
13.4 小结
第14章 对象概览
14.1 面向对象程序设计简介
14.2 对象类型概览
14.3 创建对象类型
14.3.1 对象类型规范
14.3.2 对象类型主体
14.4 对象类型继承
14.5 属性链
14.6 更改
14.7 小结
第15章 数据库中的对象
15.1 数据库中对象的简介
15.1.1 对象表
15.1.2 列对象
15.1.3 对象视图
15.2 使用SQL和PL/SQL访问持久对象
15.2.1 对象表
15.2.2 访问列对象
15.2.3 访问对象视图
15.2.4 与对象相关的函数和操作符
15.3 维护持久对象
15.4 小结
第16章 大对象
16.1 大对象简介
16.1.1 特性比较
16.1.2 LOB的种类
16.1.3 LOB的结构
16.1.4 内部LOB的存储
16.1.5 外部LOB的存储
16.1.6 临时LOB的存储
16.1.7 从LONG到LOB的移植
16.2 LOB和SQL
16.2.1 操作内部持久LOB的SQL
16.2.2 外部LOB--BFILE
16.3 LOB和PL/SQL
16.3.1 DBMS_LOB
16.3.2 APPEND
16.3.3 COMPARE
16.3.4 CONVERTTOBLOB/CONVERTOCLOB
16.3.5 BFILE_FILEEXISTS
16.3.6 BFILE_FILEOPEN/OPEN
16.3.7 BFILE_FILEISOPEN/ISOPEN
16.3.8 BFILE_FILECLOSE /CLOSE/FILECLOSEALL
16.3.9 LOADFROMFILE/LOAD-CLOBFROMFILE/LOAD-BLOBFROMFILE
16.4 执行性能
16.4.1 RETURNING子句
16.4.2 索引
16.5 小结
第17章 任务调度
17.1 DBMS_JOB简介
17.1.1 SUBMIT过程
17.1.2 BROKEN过程
17.1.3 RUN过程
17.1.4 CHANGE过程
17.1.5 REMOVE过程
17.2 Oracle调度器
17.2.1 术语
17.2.2 DBMS_SCHEDULER的使用方法
17.2.3 从DBMS_JOB移植
17.2.4 删除作业
17.3 小结
第Ⅲ部分 附录
附录A PL/SQL的保留字
附录B 内置包简介
Oracle database 10g PL
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×