第1部分 第1周课程
第1章 第1天课程:学习PUSQL基础知识
1. 1 PLSQL是什么
1. 2 为什么要学习 PIJSQL
1. 3 SQL. SQL”PluS. PUSQL之间的差别
1. 3. 1 SQL
1. 3. 2 PL/SQL
l. 3. 3 SQL*PlUS
1. 3. 4 阅读本书需要的资源
1. 4 开始使用PLSQL
1. 4. 1 PL/SQL是块结构化的
1. 4. 2 编译和执行简单的块
1. 4. 3 生成输出结果
1. 4. 4 避免重新输入
1. 4. 5 编写第一个函数
1. 4. 6 查找编译错误
1. 4. 7 显示函数的返回值
1. 4. 8 这个简单的函数有用吗
1. 5 使用Developerl2000中的过程生成器执行PL/SQL
1. 5. 1 启动过程生成器
l. 5. 2 使用交互式PL/SQL
l. 5. 3 创建SS_THRESH函数
1. 5. 4 与数据库相连
1. 6 使用 SQLPlus Wroksheet
1. 6. 1 使用 SQLPlus Wrosheet执行 PL/SQL块
1. 7 总结
1. 8 问与答
1. 9 测验和练习
1. 9. 1 测验
1. 9. 2 练习
第2章 第2天课程:编写声明和块
2. 1 探讨数据类型
2. 1. 1 VMHARZ
2. 1. 2 VARCHARZ的子类型
2. 1. 3 CHAR
2. 1. 4 CHAR子类型
2. 1. 5 NUMBER
2. 1. 6 BINARtwGER
2. 1. 7 PLS INTEGER
2. 1. 8 DATE
2. l. 9 BOOLEN
2. 1. 10 LONG
2. 1. 11 RAW
2. 1. 12 LONG RAW
2. 1. 13 ROWID
2. 1. 14 UROWID
2. 1. 15 MSLABEL
2. 2 使用块结构
2. 2. 1 匿名块
2. 2. 2 函数和过程块
2. 2. 3 触发器块
2. 2. 4 嵌套块
2. 2. 5 嵌套函数和过程
2. 2. 6 作用域规则
2. 3 总结
2. 4 问与答
2. 5 测验和练习
2. 5. 1 测验
2. 5. 2 练习
第3章 第3天课程:编写 PL/SQL表达式
3. 1 理解操作符. 表达式和转换
3. 2 使用PL/SQL操作符建立表达式
3. 2. 1 算术操作符
3. 2. 2 比较操作符
3. 2. 3 逻辑操作符
3. 2. 4 字符串操作符
3. 3 对字符串使用比较操作符
3. 3. 1 字符集对字符串比较的影响
3. 3. 2 大小写对字符串比较的影响
3. 4 对日期使用比较操作符
3. 5 使用表达式
3. 5. 1 定义表达式
3. 5. 2 操作符优先级
3. 5. 3 表达式类型
3. 5. 4 表达式中的空值
3. 6 转换数据类型
3. 6. 1 隐式转换
3. 6. 2 显式转换
3. 7 总结
3. 8 问与答
3. 9 测验和练习
3. 9. 1 测验
3. 9. 2 练习
第4章 第4天课程:使用函数. IF语句和循环
4. 1 使用 PL/SQL函数
4. 1. 1 定义参数:形参和实参
4. 1. 2 返回类型
4. 1. 3 函数违规
4. 1. 4 异常处理
4. 1. 5 创建存储函数
4. 1. 6 查找错误
4. 2 NULL语句
4. 2. 1 为何使用NULL语句
4. 2. 2 如何从PL/SQL中使用或不使用参数调用函数
4. 2. 3 调用者和定义者的权限
4. 3 使用PL/SQL语句
4. 3. 1 IF语句
4. 3. 2 IF…MN…ELSE语句
4. 3. 3 嵌套IF语句
4. 3. 4 使用 IF...ELSIF语句
4. 3. 5 嵌套IF语句和ELSIF语句
4. 3. 6 格式化IF语句
4. 3. 7 避免IF语句中的常见错误
4. 3. 8 循环语句
4. 3. 9 反向循环
4. 3. 10 修改步长
4. 4 总结
4. 5 问与答
4. 6 测验和练习
4. 6. 1 测验
4. 6. 2 练习
第5章 第5天课程:实现循环和 GOTO语旬
5. 1 探讨标号和GOTO语句
5. 1. 1 语句标号
5. 1. 2 GOTO语句
5. 1. 3 GOTO语句的作用域规则
5. 1. 4 使用GOTO语句的范例
5. 1. 5 为何使用GOTO语句
5. 2 WHIL循环
5. 2. 1 WHILE循环范例
5. 3 EXry语句和 EXIT WHEN语句
5. 3. 1 使用 EXIT和 EXIT WHEN语句的范例
5. 3. 2 在循环中使用标号和EXIT语句
5. 4 简单循环
5. 4. 1 简单循环范例
5. 4. 2 创建一个REPEAT…UNTIL循环
5. 4. 3 模仿的REPEAT…UN TIL循环范例
5. 5 应该使用哪种循环
5. 6 使用循环的指导原则
5. 6. l 循环的格式
5. 7 递归
5. 7. l 准则
5. 7. 2 练习使用递归
5. 7. 3 为何使用递归
5. 8 总结
5. 9 问与答
5. 10 测验和练习
5. 10. 1 测验
5. 10. 2练习
第6章 第6天课程:使用Oracle的内置函数
6. 1 SQL函数和PLSQL函数的比较
6. 2 主要的函数类型
6. 3 试验函数
6. 4 使用转换函数
6. 4. 1 使用TO--DATh函数
6. 4. 2 使用TON HAR
6. 4. 3 使用TOAN BER
6. 4. 4 使用 TONHAR函数
6. 5 日期函数
6. 5. 1 SYSDATE函数
6. 5. 2 ThUNC函数
6. 5. 3 ADDNONTHS函数
6. 5. 4 NEXTDAY函数
6. 5. 5 LAST--DAY函数
6. 5. 6 MONTllSNETWEENO函数
6. 5. 7 NEW函数
6. 5. 8 RO[JN’D函数
6. 5. gflllM函数
6. 6总结
6. 7问与答
6. 8测验和练习
6. 8. 1测验
6. 8. 2练习
第7章 第7天课程:过程. 包. 错误和异常
7. 1使用过程
7. 1. 1为何使用过程
7. 1. 2过程和函数
7. 1. 3创建过程
7. 1. 4RETU’RNi%句
7. 1. 5过程依赖性
7. 1. 6重新编译存储过程
7. 1. 7重新创建和修改函数
7. 1. 8调用存储过程
7. 1. 9使用参数
7. 1. 10参数定义
7. 1. 11列出存储过程的信息
7. 1. 12删除存储过程
7. 1. 13重载过程
7. 1. 14使用递归过程
7. 2过程调用的安全性
7. 3探讨包
7. 3. 1为何使用包
7. 3. 2包规范
7. 3. 3包体
7. 3. 4创建包
7. 3. 5调用包子程序
7. 3石重新编译包
7. 3. 7公有和私有包对象
7. 3. 8包调用的安全性
7. 3. 9变量. 游标和常量的持续性
7. 3. 10包状态
7. 3. 11包的依赖性
7. 4捕获错误和异常
7. 4. l异常处理结构
7. 4. 2 SQLCODE和SQLEto1M函数
7. 4. 3发生异常后继续处理
7. 4. 4发生异常后重试
7. 4. 5重新引发异常
7. 4. 6异常的作用域规则
7. 4. 7传播异常
7. 5总结
7. 6问与答
7. 7测验和练习
7. 7. 1测验
7. 7. 2练习
第1周课程复习
第2部分第2周
第8章 第8天课程 SQL
8. 1SQL DML语句的类型
8. 2创建一些Oracle表
8. 3使用INSERT语句
8. 3. 1插入一些数据
8. 4单个的SELECT语句
8. 4. 1 SELECT i%句范例
8. 5使用UPDATE语句和DELrt语句
8. 6异常处理类型
8. 7使用 LOCK TABLE语句
8. 8事务控制语句
8. 9使用记录
8. 9. 1声明记录变量
8. 9. 2使用%TYPE属性
8. 9. 3使用基于数据库表的记录变量
8. 9. 4使用记录变量和SELECT语句
8. 9. 5使用基于游标定义的记录变量
8. 9. 6包层次的声明
8. 10伪列
8. 10. ICUIUflWL伪列和NEXVAL伪列
8. 10. 2 RORD伪列
8. 10. 3 ROWN’UM伪列
8. 11总结
8. 12问与答
8. 13测验和练习
8. 13. 1测验
8. 13. 2练习
第9章 第9天课程:使用游标操纵数据
9. 1什么是游标
9. 2显式游标
9. 2. 1声明游标
9. 2. 2声明游标参数
9. 2. 3打开游标
9. 2. 4将数据取回到游标中
9. 2. 5关闭游标
9. 2. 6显式游标的属性
9. 3显式游标范例
9. 3. 1使显式游标自动化
9. 4隐式游标
9. 4. 且隐式游标的属性
9. 5游标参数的作用域
9. 6游标RETURN子句和包
9. 7游标变量
9. 7. 1声明游标变量
9. 7. 2通过游标变量使用游标
9. 7. 3将游标变量赋给其他变量
9. 7. 4将游标变量作为参数
9. 8游标的当前记录
9. 9游标的作用域
9. 10游标别名
9. 11总结
9. 12问与答
9. 13测验和练习
9. 13. 1测验
9. 13. 2练习
第10章 第10天课程:集合
10. 且使用PUSQL索引表
10. 1. 1声明索引表
10. 1. 2将条目插入到索引表中
10. 1. 3引用索引表中的值
10. 1. 4修改表中的条目
10. 1. 5删除表中的条目
10. 1. 6 PUSQL表的方法
10. 2使用嵌套表
10. 2. 1声明嵌套表
10. 2. 2给嵌套表添加条目
10. 2. 3删除嵌套表中的东
10. 3使用变长数组
10. 3. 1声明和初始化变长数组
10. 3. 2给变长数组添加和删除数据
10. 4使用批绑定
10. 4. 1使用 BULK COLLECT
10. 4. 2使用FORAL
10. 5集合的异常处理
10. 6总结
10. 7问与答
10. 8测验和练习
10. 8. 1测验
10. 8. 2练习
第11章 第11天课程:编写数据库触发器
11. 1 什么是触发器
11. 2 DML触发器
11. 2. 1 DML触发器范例
11. 2. 2 DML触发器分类
11. 2. 3定义数据库触发器的语法
11. 3 触发器的用途
11. 3. 1维护数据完整性
11. 3. 2维护历史记录
11. 4管理触发器
11. 4. 1列出触发器
11. 4. 2查看触发器的代码
11. 4. 3打开和关闭触发器
11. 5非传统触发器
11. 5. 1定义作用于数据库事件或模式事件的触发器的语
11. 5. 2事件属性
11. 5. 3编写一个数据库事件触发器
11. 5. 4编写DDL事件触发器
11. 6使用替代触发器
11. 6. 1定义替代触发器的语法
11. 6. 2编写一个替代触发器
11. 7探讨触发器的局限性
11. 7. 互触发器和变化表
11. 8总结
11. 9问与答
11. 10测验和练习
11. 10. l测验
11. 10. 2练习
第 12章第 12天课程:将 Oraclest对象用于面向对象编S
12. l面向对象编程的基本知识
12. 1. l封装
12. 1. 2继承
12. 1. 3多态
12. 1. 4类. 对象. 属性和方法
12. 1. 5 OOP优于传统方法的地方
12. 2 Oraclest是如何实现对象的
12. 2. 1对象类型
12. 2. 2对象表
12. 2. 3对象视图
12. 3定义对象类型
12. 3. l构造函数
12. 3. 2取值方法
12. 3. 3赋值方法
12. 4实例化和使用对象
12. 5存储和检索对象
12. 5. 1将对象存储为表字段
12. 5. 2检索和更新表字段中的对象
12. 6使用对象表
12. 6. 1将对象存储在对象表中
12. 6. 2检索和更新对象表中的对象
12石. 3删除对象表中的对象
12. 7嵌套和共享对象
12. 7. 1点号表示法
12. 7. 2对象引用
12. 8探讨 SELF参数
12. 9重载
12. 10比较对象
12. 10. 1 ORDER方法
12. 10. 2 MAP方法
12. 11 OraCIC实现的局限性
12. 12总结
12. 13问与答
12. 14测验和练习
12. 14. 1测验
12. 14. 2练习
第13章 第13天课程:调试代码并防止错误
13. 1定位并消除语法错误
13. 1. 1识别语法错误
13. 1. 2一个识别语法错误的范例
13. 1. 3防止语法错误
13. 2处理逻辑错误
13. 2. 1操作次序
13. 2. 2死循环
13. 2. 3逻辑错误的排除方法
13. 3使用工具帮助调试程序
13. 3. 1将DBMS_OUTPUT用做调试工具
13. 3. 2编写 DEBUG包
13. 4防止错误并规划以后的调试
13. 4. 且定义需求和规划项目
13. 4. 2使用模块化方法编码
13. 4. 3注释代码
13. 4. 4在代码中编写断言
13. 4. 5格式化代码
13. 5总结
13. 6问与答
13. 7测验和练习
13. 7. 1测验
13. 7. 2练习
第14章第14天课程:使用大型对象类型
14. 1探讨大型对象数据类型
14. 1. 1 LOB的局限性
14. 1. 2 LOB和LONG数据类型的比较
14. 1. 3 将LONG转换为LOB
14. 2在OraClest数据库中使用外部文件
14. 2. 1创建目录对象
14. 2. 2 BFILE的局限性
14. 3将DBMSthOB包用于BFILE
14. 3. 1 BHLE:NAME函数
14. 3. 2 COMRUIE函数
14. 3. 3 FILECOLOSE过程
14. 3. 4 MLECLOSEALL过程
14. 3. 5 MLEEXISTS函数
14. 3. 6 MLEGETNAME过程
14. 3. 7 FILESOPEN函数
14. 3. 8 FILEOPEN过程
14. 3. 9 GEILENGTH函数
14. 3. 10 INSTR函数
14. 3. 11 READ过程
14. 3. 12 SUBSTR函数
14. 4使用DMBS上OB包的BFILE范例
14. 4. 1访问BFILE
14. 4. 2比较文件
14. 5使用定位器
14. 6将DBMSNOB包用于内部LOB
14. 6. 1 APPEND过程
14. 6. 2 COMIVUIE函数
14. 6. 3 COPY过程
14. 6. 4 EMPTY_BLOB函数
14. 6. 5 EMPTY_CLOB函数
14. 6. 6 ERASE过程
14. 6. 7 GETLENGTH函数
14. 6. 8 INSTR函数
14. 6. 9 READ过程
14. 6. 10 SUBSTR函数
14. 6. 11 TRIM过程
14. 6. 12 WRITE过程
14. 7使用DMBS上OB包的内部LOB范例
14. 7. l创建一个表
14. 7. 2给表添加数据
14. 7. 3使用COPY过程将数据添加到表LOBs中
14. 7. 4使用APPEND和VqllTh操纵内部LOB
14. 7. 5分析内部LOB的内容
14. 7. 6使用TRIM和ERASE编辑CLOB
14. 8临时 LOB
14. 8. 且管理临时LOB
14. 8. 2创建临时LOB
14. 9总结
14. 10问与答
14. 11测验和练习
14. 11. 1测验
14. 11. 2练习
第2周课程复习
第3部分第3周课程
第15章第15天课程:管理事务和锁定
15. 1事务类型
15. 2开始事务
15. 3结束事务
15. 4撤销事务
15. 5两步提交
15. 6使用保存点创建书签
15. 7使用 RELEASE选项
15. 8使用锁定
15. 8. 1锁定表
15. 8. 2锁定记录
15. 8. 3显式锁定
15. 8. 4 DBMSthOCK包
15. 8. 5使用其他锁定
15. 8. 6监视锁定
15. 9总结
15. 10问与答
15. 11测验和练习
15. 11. l测验
15. 11. 2练习
第 16章第 16天课程:主成动态 SQL
16. l什么是动态SQL, 为何使用它
16. 2两种使用动态SQL的方法
16. 3使用DBMS_SQL包
16. 3. 1使用DBMS_SQL包执行非查询DDL和DML
16. 3. 2使用DBMS_SQL包执行查询
16. 3. 3使用DBMS_SQL包执行匿名PL/SQL块
16. 3. 4处理DBMS-SQL错误
16. 3. 5使用LASTHOWNOUNT
16. 3. 6使用 LASTNOWID
16. 3. 7使用 LASTNngORNOSITON
16. 4使用本机动态SQL
16. 4. 1执行DML和DDL
16. 4, 2执行SQL查询
16. 4. 3执行PLSQL块
16. 5总结
16. 6问与答
16. 7测验和练习
16. 7. 1测验
16. 7. 2练习
第17章第17天课程:将数据写到文件和显示屏
17. IDBMS--OUTPUT包
17. 1. 1开启 DBMS. OUTPUT包
17. 1. 2关闭 DBMS-OUTPUT包
门. 1. 3将数据写到缓冲区
17. 1. 4从缓冲区读取数据
17. l. 5 DBMS--QUTPUT包9]发的异常
17. 2使用 UTLN包读写文件
17. 2. 1文件输入
17. 2. 2使用UTLN E过程和函数
17. 2. 3 HUSH过程
17. 2. 4使用UTLMLE的范例
17. 3将TEXTIO用于客户文件
17. 4总结
17. 5问与答
17. 6测验和练习
17. 6. 1测验
17. 6. 2练习
第18章第18天课程:管理数据库作业
18. 1使用DBMSjOB包提交作业
18. 2使用后台进程
18. 3执行作业
18. 3. 1使用SUBMIT将作业提交给作业队列
18. 3. 2使用 RUN立刻执行作业
18. 3. 3探讨作业环境
18. 4查看作业
18. 4. 1查看作业的范例
18. 5作业管理
18. 5. 1删除作业
18. 5. 2修改作业
18. 5. 3导入和导出作业
18. 5. 4处理损坏的作业
18. 6练习管理作业
18. 6. 1创建作为作业提交的过程
18. 6. 2将所有的作业提交给作业队列
18. 6. 3立刻运行所有的三个作业
18. 6. 4查看关于作业的信息
18. 6. 5通过运行 HELLO作业修改作业
18. 6. 6删除 Hello作业
18. 7总结
18. 8问与答
18. 9测验和练习
18. 9. 1测验
18. 9. 2练习
第19章第19天课程:报警以及与其他过程通信:DBMS_ALERT和DBMS_PIPE包
19. 1 DBMS_ALERT包
19. 2使用SIGNAL发布报警
19. 3注册报警
19. 4等待特定的报警
19. 5等待所有已注册的报警
19. 6删除一个报警
19. 7删除所有的报警
19. 8 SET_AIEFAULTS过程涉及的轮讯和事件
19. 9 演示DBMS_ALERT包的用法
19. 9. 1创建备份数据库
19. 9. 2创建触发器, 以发送报警
19. 9. 3等待报警
19. 10 DBMSJIPE包
19. 10. 1公有管道和私有管道
19. 10. 2使用管道
19. 10. 3 DMBS_PIPE中的函数和过程
19. 10. 4使用管道的范例
19. 10. 5其他管道函数和过程
19. 10. 6管道的其他用途
19. 11报警和管道的比较
19. 12总结
19. 13问与答
19. 14测验和练习
19. 14. l测验
19. 14. 2练习
第20章第 20天课程:PL/SQL和Java
20. l使用Oracle的Java引擎
20. 2 PLSQL将被淘汰吗
20. 3创建Java过程
20. 3. 1 需要的前提条件
20. 3. 2 SS_CONSTANTS类
20. 3. 3装载类
20. 3. 4公布SSThresh方法
20. 3. 5在 SQL”PISS中调用 SSHHRESH
20. 3. 6在PLSQL中调用SSHHRESH
20. 3. 7删除 SSContants类
20. 4从PLSQL中调用Java
20. 4. IEIDployee类
20. 4. 2公布 Java方法
20. 4. 3数据类型兼容性
20. 4. 4使用 OUT和 IN OUT参数
20. 5使用SQLJ从Java中调用PLSQL
20. 5. 1使用SQLJ执行匿名PLSQL块
20. 5. 2使用SQLJ调用PLISQL过程或函数
20. 6总结
20. 7问与答
20. 8测验和练习
20. 8. 1测验
20. 8. 2 练习
第21章 第21天课程:高级排队
21. 1 什么是AQ
21. 1. 1 揭开AQ的神秘面纱
21. l. 2 AQ的重要特性
21. 2 配置服务器, 以便使用AQ
21. 3 探讨AQ方案
21. 4 创建一个消息队列
21. 4. l 为负载定义一个类型
21. 4. 2 创建队列表
21. 4. 3 创建队列
21. 5 启动和关闭队列
21. 6 将消息放入队列
21. 6. l 与入队相关的记录类型
21. 6. 2 将消息放入队列
21. 7 从队列中检索消息
21. 7. 1 与出队相关的记录类型
21. 7. 2 将消息从队列中取出
21. 8 使用其他AQ过程
21. 8. 1 删除队列
21. 8. 2 删除队列表
21. 8. 3 授予和收回访问队列的权限
21. 9 总结
21. 10 问与答
21. 11 测验和练习
21. 11. 1 测验
21. 11. 2 练习
第3周 课程复习
附录A 测验和练习答案