第一章 PL/SQL一览
一、理解PL/SQL的主要特性
1、块结构
2、变量与常量
3、游标
4、游标FOR循环
5、游标变量
6、属性
7、控制结构
8、模块化
9、数据抽象
10、信息隐藏
11、错误控制
二、PL/SQL架构
1、Oracle数据库中
2、Oracle工具中
三、PL/SQL的优势
1、SQL的支持
2、面向对象的支持
3、良好的性能
4、高效性
5、可移植性
6、与SQL紧密结合
7、高度安全
第二章 PL/SQL基础
一、字符集
二、词法单元
1、分隔符
2、标识符
3、文字
4、注释
三、声明
1、使用DEFAULT
2、使用NOT NULL
3、使用%TYPE
4、使用%ROWTYPE
5、声明的约束
四、PL/SQL命名规范
五、PL/SQL标识符的作用域(scope)和可见度(visiblity)
六、变量赋值
1、布尔型(Boolean)赋值
2、利用SQL查询为PL/SQL变量赋值
七、PL/SQL表达式与比较
1、逻辑操作符
2、布尔表达式
3、CASE表达式
4、在比较和条件语句中处理NULL值
八、内置函数
第三章 PL/SQL数据类型
一、预定义数据类型
1、数字型
2、字符型
3、本地字符型
4、LOB类型
5、布尔类型
6、Datetime和Interval类型
7、Datetime和Interval算法
8、使用日期和时间子类型来避免"切断"问题
二、用户自定义子类型
1、定义子类型
2、使用子类型
三、数据类型转换
1、显式转换
2、隐式转换
3、显式转换 VS 隐式转换
4、DATE值
5、RAW和LONG RAW值
第四章 PL/SQL的控制结构
一、PL/SQL控制结构一览
二、条件控制:IF和CASE语句
1、IF-THEN语句
2、IF-THEN-ELSE语句
3、IF-THEN-ELSIF语句
4、CASE语句
5、PL/SQL条件控制语句使用准则
三、循环控制:LOOP和EXIT语句
1、LOOP
2、WHILE-LOOP
3、FOR-LOOP
四、顺序控制:GOTO和NULL语句
1、GOTO语句
2、NULL语句
第五章 PL/SQL集合与记录
一、什么是集合
1、理解嵌套表
2、理解变长数组
3、理解关联数组(索引表)
4、全球化设置对使用VARCHAR2类型作主键的关联数组的影响
二、集合类型的选择
1、嵌套表与关联数组间的选择
2、嵌套表与变长数组间的选择
三、定义集合类型
1、定义与PL/SQL集合类型等价的SQL类型
四、声明PL/SQL集合变量
五、初始化与引用集合
1、引用集合中的元素
六、集合的赋值
七、比较集合
八、在SQL语句中使用PL/SQL的集合类型
1、关于嵌套表的例子
2、变长数组的一些例子
3、使用SQL语句操作特定的集合元素
九、使用多级集合
十、集合的方法
1、检测集合中的元素是否存在(EXISTS)
2、计算集合中的元素个数(COUNT)
3、检测集合的最大容量(LIMIT)
4、查找集合中的首末元素(FIRST和LAST)
5、循环遍历集合中的元素(PRIOR和NEXT)
6、扩大集合的容量(EXTEND)
7、缩减集合的空间(TRIM)
8、删除集合中的元素(DELETE)
9、使用集合类型参数的方法
十一、避免集合异常
十二、使用集合批量绑定减少循环开销
1、批量绑定如何提高性能
十三、使用FORALL语句
1、FORALL语句对回滚的影响
2、使用%BULK_ROWCOUNT属性来计算FORALL语句所影响到的行数
3、使用%BULK_EXCEPTIONS属性来控制FORALL异常
十四、利用BULK COLLECTION子句为集合赋值
1、从游标中批量取得数据的例子
2、使用LIMIT子句限制FETCH操作批量取得的数据个数
3、使用RETURNING INTO子句将DML的操作结果绑定到集合
4、BULK COLLECT的限制
5、把FORALL和BULK COLLECTION结合起来使用
6、使用主数组进行批量绑定
十五、什么是记录
十六、定义和声明记录
1、声明记录
2、初始化记录
3、引用记录
4、为记录赋控值
5、为记录赋值
6、比较记录
十七、操作记录
1、向数据库插入PL/SQL记录
2、使用记录更新数据库
3、记录类型插入/更新操作的约束
4、用查询结果为记录类型的集合赋值
第六章 PL/SQL与Oracle间交互
一、PL/SQL支持的SQL一览
1、数据操作
2、事务控制
3、SQL函数
4、SQL伪列
5、SQL操作符
二、管理游标
1、显式游标一览
2、隐式游标一览
三、用包将游标的声明和游标体分离
四、使用游标FOR循环
1、使用子查询代替显式游标
2、使用游标子查询
3、在游标FOR循环中为表达式定义别名
4、为游标FOR循环传递参数
五、使用游标变量
1、什么是游标变量
2、为什么使用游标变量
3、定义REF CURSOR类型
4、声明游标变量
5、控制游标变量
6、游标变量示例:主从表
7、游标变量示例:客户端PL/SQL块
8、游标变量示例:Pro*C程序
9、游标变量示例:SQL*Plus中操作主变量
10、在向PL/SQL块传递主游标变量时减少网络负荷
11、避免游标变量的错误
12、游标变量的限制
六、使用游标属性
1、显式游标属性一览
2、 隐式游标属性一览
七、使用游标表达式
1、游标表达式的约束
2、游标表达式的示例
八、PL/SQL中的事务处理一览
1、如何用事务保护数据库
2、使用COMMIT提交事务
3、使用ROLLBACK回滚事务
4、使用SAVEPOINT回滚部分事务
5、Oracle如何隐式回滚
6、终止事务
7、使用SET TRANSACTION设置事务属性
8、覆盖默认锁
九、使用自治事务完成单个逻辑工作单元
1、自治事务的优点
2、定义自治事务
3、控制自治事务
4、使用自治触发器
5、从SQL中调用自治函数
十、确保PL/SQL程序的向后兼容
第七章 控制PL/SQL错误
一、错误控制一览
二、异常的优点
三、预定义PL/SQL异常
四、自定义PL/SQL异常
1、声明PL/SQL异常
2、PL/SQL异常的作用域规则
3、把PL/SQL异常与编号关联:编译指示EXCEPTION_INIT
4、自定我们自己的错误消息:过程RAISE_APPLICATION_ERROR
5、重新声明预定义异常
五、如何抛出PL/SQL异常
1、使用RAISE语句抛出异常
六、PL/SQL异常的传递
七、重新抛出PL/SQL异常
八、处理PL/SQL异常
1、声明中控制异常
2、异常句柄中控制异常
3、异常分支
4、获取错误代号与消息:SQLCODE和SQLERRM
5、捕获未控制异常
九、PL/SQL错误控制技巧
1、模拟TRY..CATCH..块
2、反复执行的事务
3、使用定位变量标记异常发生点
第八章 PL/SQL子程序
一、什么是子程序
二、子程序的优点
三、理解PL/SQL过程
四、理解PL/SQL函数
1、使用RETURN语句
2、控制PL/SQL子程序的副影响
五、声明PL/SQL子程序
六、子程序打包
七、形参VS实参
八、位置标示法VS名字标示法
1、使用位置标示法
2、使用名字标示法
3、使用混合标示法
九、指定子程序参数模式
1、使用IN模式
2、使用OUT模式
3、使用IN OUT模式
4、子程序参数模式总结
十、使用NOCOPY编译提示传递大型数据结构
1、权衡NOCOPY所带来的良好性能
2、NOCOPY的限制
十一、使用子程序参数的默认值
十二、理解子程序参数别名
十三、子程序的重载
1、重载的限制
十四、如何解析子程序调用
1、继承中的重载实现
十五、使用表函数接受并返回多行结果
1、表函数一览
2、什么是表函数
3、什么是管道化表函数
4、使用管道化表函数来进行转换
5、编写管道化表函数
6、从表函数返回结果
7、PL/SQL表函数间的数据管道化处理
8、查询Table函数
9、优化对表函数的多次调用
10、使用游标变量传递数据
11、在表函数内执行DML操作
12、在表函数上执行DML操作
13、控制Table函数的异常
十六、表函数并行化处理
1、表函数的并行执行
2、输入数据的分区
3、叶级(Leaf-level)表函数的并行执行
十七、表函数如何"流化"(Stream)传入的数据
1、并行执行中分区与分组的选择
十八、调用者权限VS定义者权限
1、调用者权限的优点
2、用AUTHID子句为子程序指定权限
3、执行当前子程序的用户是谁?
4、如何解析调用者权限子程序里的外部引用
5、覆盖调用者权限子程序中的默认命名解析
6、授权执行调用者权限子程序
7、对调用者权限的子程序使用角色
8、在调用者权限子程序中使用视图和数据库触发器
9、在调用者权限子程序中使用数据库连接
10、在调用者权限子程序中使用对象类型
十九、理解并使用递归
1、什么是递归子程序
2、使用相互递归
3、递归VS迭代
二十、调用外部子程序
二十一、使用PL/SQL Server Page创建动态网页
第九章 PL/SQL包
一、什么是PL/SQL包
1、PL/SQL包举例
二、PL/SQL包的优点
三、理解包说明
1、引用包的内容
四、理解包体
五、包特性的例子
六、包中私有项和公有项
七、重载包级子程序
八、包STANDARD是如何定义PL/SQL环境的
九、系统包一览
1、关于DBMS_ALERT包
2、关于DBMS_OUTPUT包
3、关于DBMS_PIPE包
4、关于UTL_FILE包
5、关于UTL_HTTP包
十、包编写准则
第十章 PL/SQL对象类型
一、抽象的角色
二、什么是对象类型
三、为什么使用对象类型
四、对象类型的结构
五、对象类型组件
1、属性
2、方法
3、更改已存在对象类型的属性和方法
六、定义对象类型
1、PL/SQL类型继承一览
2、对象类型实例:栈
3、对象类型实例:售票处
4、对象类型实例:银行账户
5、对象类型实例:实数
七、声明并初始化对象
1、定义对象
2、初始化对象
3、PL/SQL如何对待未初始化对象
八、访问属性
九、定义构造函数
十、调用构造函数
十一、调用方法
十二、通过REF修饰符共享对象
1、向前类型定义
十三、操作对象
1、查询对象
2、插入对象
3、更新对象
4、删除对象
第十一章 本地动态SQL
一、什么是动态SQL
二、动态SQL的需求
三、使用EXECUTE IMMEDIATE语句
1、动态SQL实例
2、USING子句的向后兼容
3、指定参数模式
四、使用OPEN-FOR、FETCH和CLOSE语句
1、打开游标变量
2、从游标变量取得数据
3、关闭游标变量
4、记录,集合和对象类型的动态SQL举例
五、使用批量动态SQL
1、动态批量绑定语法
2、动态批量绑定实例
六、动态SQL的技巧与陷阱
1、改善性能
2、让过程对任意模式对象起作用
3、使用重复占位符
4、使用游标属性
5、传递空值
6、远程操作
7、使用调用者权限
8、使用RESTRICT_REFERENCES
9、避免死锁
第十二章 PL/SQL应用程序性能调优
一、PL/SQL性能问题的原由
二、确定PL/SQL的性能问题
1、Profiler API:DBMS_PROFILER包
2、Trace API:包DBMS_TRACE
三、PL/SQL性能优化特性
1、使用本地动态SQL优化PL/SQL
2、使用批量绑定优化PL/SQL
3、使用NOCOPY编译器提示优化PL/SQL
4、使用RETURNING子句优化PL/SQL
5、使用外部程序优化PL/SQL
6、使用对象类型和集合优化PL/SQL
7、编译本地执行的PL/SQL代码
from:www.itlife365.comhttp://ww.itlife365.com
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/rcom10002/archive/2007/09/18/1788990.aspx