PL/SQL是Oracle的关系型数据库过程性编程语言,用它可以开发复杂的、功能强大的程序,以访问和操纵Oracle8i数据库中的数据。PL/SQL是几种Oracle产品(包括Developer/2000和Oracle8i数据库本身)的核心。\r\n 本书以1天讲解1章课程的形式,引导读者大约用3周的时间学会使用PL/SQL语言,并掌握PL/SQL编程技巧。为了便于读者深入理解书中介绍的内容,每章都提供了大量范例以及供读者练习的习题和测验。\r\n第1周课程中,主要介绍PL/SQL语言的基本知识,内容包括PL/SQL简介;编写声明和块;编写PL/SQL表达式;使用各种函数和PL/SQL语句;使用Oracle内置函数;过程、包和错误处理例程。第2周课程介绍一些更高级的功能以及如何结合数据库使用PL/SQL,此外还将探讨一些Oracle8i的面向对象功能。本周内容包括游标处理技术、集合、触发器、复合数据库结构、调试处理技术和大型数据对象建立PL/SQL程序等。在第3周课程中介绍Oracle内置的包,内容包括事务管理和锁定、动态SQL、Java引擎和高级排队技术。阅读完本书后,读者可以开发自己的PL/SQL程序,并知道如何将这些程序存储在数据库中,并执行它们。\r\n本书是为初级程序员和中级程序员编写的,但对经验更为丰富的程序员也会有所帮助。本书可以让初学者很快便能开始开发PL/SQL应用程序,对于数据库编程人员以及大专院校计算机专业师生也很有参考价值。\r\n\r\n
第1部分 第1周课程\r\n第1章 第1天课程:学习PL/SQL基础知识\r\n1.1 PL/SQL是什么\r\n1.2 为什么要学习PL/SQL\r\n1.3 SQL、SQL*Plus、PL/SQL之间的差别\r\n1.3.1 SQL\r\n1.3.2 PL/SQL\r\n1.3.3 SQL*Plus\r\n1.3.4 阅读本书需要的资源\r\n1.4 开始使用PL/SQL\r\n1.4.1 PL/SQL是块结构化的\r\n1.4.2 编译和执行简单的块\r\n1.4.3 生成输出结果\r\n1.4.4 避免重新输入\r\n1.4.5 编写第一个函数\r\n1.4.6 查找编译错误\r\n1.4.7 显示函数的返回值\r\n1.4.8 这个简单的函数有用吗\r\n1.5 使用Developer/2000中的过程生成器执行PL/SQL\r\n1.5.1 启动过程生成器\r\n1.5.2 使用交互式PL/SQL\r\n1.5.3 创建SS_THRESH函数\r\n1.5.4 与数据库相连\r\n1.6 使用SQLPlus Wroksheet\r\n1.6.1 使用SQLPlus Wroksheet执行PL/SQL块\r\n1.7 总 结\r\n1.8 问与答\r\n1.9 测验和练习\r\n1.9.1 测验\r\n1.9.2 练习\r\n第2章 第2天课程:编写声明和块\r\n2.1 探讨数据类型\r\n2.1.1 VARCHAR2\r\n2.1.2 VARCHAR2的子类型\r\n2.1.3 CHAR\r\n2.1.4 CHAR子类型\r\n2.1.5 NUMBER\r\n2.1.6 BINARY_INTEGER\r\n2.1.7 PLS_INTEGER\r\n2.1.8 DATE\r\n2.1.9 BOOLEN\r\n2.1.10 LONG\r\n2.1.11 RAW\r\n2.1.12 LONG RAW\r\n2.1.13 ROWID\r\n2.1.14 UROWID\r\n2.1.15 MSLABEL\r\n2.2 使用块结构\r\n2.2.1 匿名块\r\n2.2.2 函数和过程块\r\n2.2.3 触发器块\r\n2.2.4 嵌套块\r\n2.2.5 嵌套函数和过程\r\n2.2.6 作用域规则\r\n2.3 总 结\r\n2.4 问与答\r\n2.5 测验和练习\r\n2.5.1 测验\r\n2.5.2 练习\r\n第3章 第3天课程:编写PL/SQL表达式\r\n3.1 理解操作符、表达式和转换\r\n3.2 使用PL/SQL操作符建立表达式\r\n3.2.1 算术操作符\r\n3.2.2 比较操作符\r\n3.2.3 逻辑操作符\r\n3.2.4 字符串操作符\r\n3.3 对字符串使用比较操作符\r\n3.3.1 字符集对字符串比较的影响\r\n3.3.2 大小写对字符串比较的影响\r\n3.4 对日期使用比较操作符\r\n3.5 使用表达式\r\n3.5.1 定义表达式\r\n3.5.2 操作符优先级\r\n3.5.3 表达式类型\r\n3.5.4 表达式中的空值\r\n3.6 转换数据类型\r\n3.6.1 隐式转换\r\n3.6.2 显式转换\r\n3.7 总 结\r\n3.8 问与答\r\n3.9 测验和练习\r\n3.9.1 测验\r\n3.9.2 练习\r\n第4章 第4天课程:使用函数、IF语句和循环\r\n4.1 使用PL/SQL函数\r\n4.1.1 定义参数:形参和实参\r\n4.1.2 返回类型\r\n4.1.3 函数违规\r\n4.1.4 异常处理\r\n4.1.5 创建存储函数\r\n4.1.6 查找错误\r\n4.2 NULL语句\r\n4.2.1 为何使用NULL语句\r\n4.2.2 如何从PL/SQL中使用或不使用参数调用函数\r\n4.2.3 调用者和定义者的权限\r\n4.3 使用PL/SQL语句\r\n4.3.1 IF语句\r\n4.3.2 IF…THEN…ELSE语句\r\n4.3.3 嵌套IF语句\r\n4.3.4 使用IF…ELSIF语句\r\n4.3.5 嵌套IF语句和ELSIF语句\r\n4.3.6 格式化IF语句\r\n4.3.7 避免IF语句中的常见错误\r\n4.3.8 循环语句\r\n4.3.9 反向循环\r\n4.3.10 修改步长\r\n4.4 总 结\r\n4.5 问与答\r\n4.6 测验和练习\r\n4.6.1 测验\r\n4.6.2 练习\r\n第5章 第5天课程:实现循环和GOTO语句\r\n5.1 探讨标号和GOTO语句\r\n5.1.1 语句标号\r\n5.1.2 GOTO语句\r\n5.1.3 GOTO语句的作用域规则\r\n5.1.4 使用GOTO语句的范例\r\n5.1.5 为何使用GOTO语句\r\n5.2 WHILE循环\r\n5.2.1 WHILE循环范例\r\n5.3 EXIT语句和EXIT WHEN语句\r\n5.3.1 使用EXIT和EXIT WHEN语句的范例\r\n5.3.2 在循环中使用标号和EXIT语句\r\n5.4 简单循环\r\n5.4.1 简单循环范例\r\n5.4.2 创建一个REPEAT…UNTIL循环\r\n5.4.3 模仿的REPEAT…UNTIL循环范例\r\n5.5 应该使用哪种循环\r\n5.6 使用循环的指导原则\r\n5.6.1 循环的格式\r\n5.7 递 归\r\n5.7.1 准则\r\n5.7.2 练习使用递归\r\n5.7.3 为何使用递归\r\n5.8 总 结\r\n5.9 问与答\r\n5.10 测验和练习\r\n5.10.1 测验\r\n5.10.2 练习\r\n第6章 第6天课程:使用Oracle的内置函数\r\n6.1 SQL函数和PL/SQL函数的比较\r\n6.2 主要的函数类型\r\n6.3 试验函数\r\n6.4 使用转换函数\r\n6.4.1 使用TO_DATE函数\r\n6.4.2 使用TO_CHAR\r\n6.4.3 使用TO_NUMBER\r\n6.4.4 使用TO_CHAR函数\r\n6.5 日期函数\r\n6.5.1 SYSDATE函数\r\n6.5.2 TRUNC函数\r\n6.5.3 ADD_MONTHS函数\r\n6.5.4 NEXT_DAY函数\r\n6.5.5 LAST_DAY函数\r\n6.5.6 MONTHS_BETWEEN0函数\r\n6.5.7 NEW_TIME函数\r\n6.5.8 ROUND函数\r\n6.5.9 TRIM函数\r\n6.6 总 结\r\n6.7 问与答\r\n6.8 测验和练习\r\n6.8.1 测验\r\n6.8.2 练习\r\n第7章 第7天课程:过程、包、错误和异常\r\n7.1 使用过程\r\n7.1.1 为何使用过程\r\n7.1.2 过程和函数\r\n7.1.3 创建过程\r\n7.1.4 RETURN语句\r\n7.1.5 过程依赖性\r\n7.1.6 重新编译存储过程\r\n7.1.7 重新创建和修改函数\r\n7.1.8 调用存储过程\r\n7.1.9 使用参数\r\n7.1.10 参数定义\r\n7.1.11 列出存储过程的信息\r\n7.1.12 删除存储过程\r\n7.1.13 重载过程\r\n7.1.14 使用递归过程\r\n7.2 过程调用的安全性\r\n7.3 探讨包\r\n7.3.1 为何使用包\r\n7.3.2 包规范\r\n7.3.3 包体\r\n7.3.4 创建包\r\n7.3.5 调用包子程序\r\n7.3.6 重新编译包\r\n7.3.7 公有和私有包对象\r\n7.3.8 包调用的安全性\r\n7.3.9 变量、游标和常量的持续性\r\n7.3.10 包状态\r\n7.3.11 包的依赖性\r\n7.4 捕获错误和异常\r\n7.4.1 异常处理结构\r\n7.4.2 SQLCODE和SQLERRM函数\r\n7.4.3 发生异常后继续处理\r\n7.4.4 发生异常后重试\r\n7.4.5 重新引发异常\r\n7.4.6 异常的作用域规则\r\n7.4.7 传播异常\r\n7.5 总 结\r\n7.6 问与答\r\n7.7 测验和练习\r\n7.7.1 测验\r\n7.7.2 练习\r\n第1周 课程复习\r\n第2部分 第2周课程\r\n第8章 第8天课程:使用SQL\r\n8.1 SQL DML语句的类型\r\n8.2 创建一些Oracle表\r\n8.3 使用INSERT语句\r\n8.3.1 插入一些数据\r\n8.4 单个的SELECT语句\r\n8.4.1 SELECT语句范例\r\n8.5 使用UPDATE语句和DELETE语句\r\n8.6 异常处理类型\r\n8.7 使用LOCK TABLE语句\r\n8.8 事务控制语句\r\n8.9 使用记录\r\n8.9.1 声明记录变量\r\n8.9.2 使用%TYPE属性\r\n8.9.3 使用基于数据库表的记录变量\r\n8.9.4 使用记录变量和SELECT语句\r\n8.9.5 使用基于游标定义的记录变量\r\n8.9.6 包层次的声明\r\n8.10 伪 列\r\n8.10.1 CURRVAL伪列和NEXTVAL伪列\r\n8.10.2 ROWID伪列\r\n8.10.3 ROWNUM伪列\r\n8.11 总 结\r\n8.12 问与答\r\n8.13 测验和练习\r\n8.13.1 测验\r\n8.13.2 练习\r\n第9章 第9天课程:使用游标操纵数据\r\n9.1 什么是游标\r\n9.2 显式游标\r\n9.2.1 声明游标\r\n9.2.2 声明游标参数\r\n9.2.3 打开游标\r\n9.2.4 将数据取回到游标中\r\n9.2.5 关闭游标\r\n9.2.6 显式游标的属性\r\n9.3 显式游标范例\r\n9.3.1 使显式游标自动化\r\n9.4 隐式游标\r\n9.4.1 隐式游标的属性\r\n9.5 游标参数的作用域\r\n9.6 游标RETURN子句和包\r\n9.7 游标变量\r\n9.7.1 声明游标变量\r\n9.7.2 通过游标变量使用游标\r\n9.7.3 将游标变量赋给其他变量\r\n9.7.4 将游标变量作为参数\r\n9.8 游标的当前记录\r\n9.9 游标的作用域\r\n9.10 游标别名\r\n9.11 总 结\r\n9.12 问与答\r\n9.13 测验和练习\r\n9.13.1 测验\r\n9.13.2 练习\r\n第10章 第10天课程:集合\r\n10.1 使用PL/SQL索引表\r\n10.1.1 声明索引表\r\n10.1.2 将条目插入到索引表中\r\n10.1.3 引用索引表中的值\r\n10.1.4 修改表中的条目\r\n10.1.5 删除表中的条目\r\n10.1.6 PL/SQL表的方法\r\n10.2 使用嵌套表\r\n10.2.1 声明嵌套表\r\n10.2.2 给嵌套表添加条目\r\n10.2.3 删除嵌套表中的条目\r\n10.3 使用变长数组\r\n10.3.1 声明和初始化变长数组\r\n10.3.2 给变长数组添加和删除数据\r\n10.4 使用批绑定\r\n10.4.1 使用BULK COLLECT\r\n10.4.2 使用FORALL\r\n10.5 集合的异常处理\r\n10.6 总 结\r\n10.7 问与答\r\n10.8 测验和练习\r\n10.8.1 测验\r\n10.8.2 练习\r\n第11章 第11天课程:编写数据库触发器\r\n11.1 什么是触发器\r\n11.2 DML触发器\r\n11.2.1 DML触发器范例\r\n11.2.2 DML触发器分类\r\n11.2.3 定义数据库触发器的语法\r\n11.3 触发器的用途\r\n11.3.1 维护数据完整性\r\n11.3.2 维护历史记录\r\n11.4 管理触发器\r\n11.4.1 列出触发器\r\n11.4.2 查看触发器的代码\r\n11.4.3 打开和关闭触发器\r\n11.5 非传统触发器\r\n11.5.1 定义作用于数据库事件或模式事件的触发器的语法 \r\n11.5.2 事件属性\r\n11.5.3 编写一个数据库事件触发器\r\n11.5.4 编写DDL事件触发器\r\n11.6 使用替代触发器\r\n11.6.1 定义替代触发器的语法\r\n11.6.2 编写一个替代触发器\r\n11.7 探讨触发器的局限性\r\n11.7.1 触发器和变化表\r\n11.8 总 结\r\n11.9 问与答\r\n11.10 测验和练习\r\n11.10.1 测验\r\n11.10.2 练习\r\n\r\n第12章 第12天课程:将Oracle8i对象用于面向对象编程\r\n12.1 面向对象编程的基本知识\r\n12.1.1 封装\r\n12.1.2 继承\r\n12.1.3 多态\r\n12.1.4 类、对象、属性和方法\r\n12.1.5 OOP优于传统方法的地方\r\n12.2 Oracle8i是如何实现对象的\r\n12.2.1 对象类型\r\n12.2.2 对象表\r\n12.2.3 对象视图\r\n12.3 定义对象类型\r\n12.3.1 构造函数\r\n12.3.2 取值方法\r\n12.3.3 赋值方法\r\n12.4 实例化和使用对象\r\n12.5 存储和检索对象\r\n12.5.1 将对象存储为表字段\r\n12.5.2 检索和更新表字段中的对象\r\n12.6 使用对象表\r\n12.6.1 将对象存储在对象表中\r\n12.6.2 检索和更新对象表中的对象\r\n12.6.3 删除对象表中的对象\r\n12.7 嵌套和共享对象\r\n12.7.1 点号表示法\r\n12.7.2 对象引用\r\n12.8 探讨SELF参数\r\n12.9 重 载\r\n12.10 比较对象\r\n12.10.1 ORDER方法\r\n12.10.2 MAP方法\r\n12.11 Oracle实现的局限性\r\n12.12 总 结\r\n12.13 问与答\r\n12.14 测验和练习\r\n12.14.1 测验\r\n12.14.2 练习\r\n第13章 第13天课程:调试代码并防止错误\r\n13.1 定位并消除语法错误\r\n13.1.1 识别语法错误\r\n13.1.2 一个识别语法错误的范例\r\n13.1.3 防止语法错误\r\n13.2 处理逻辑错误\r\n13.2.1 操作次序\r\n13.2.2 死循环\r\n13.2.3 逻辑错误的排除方法\r\n13.3 使用工具帮助调试程序\r\n13.3.1 将DBMS_OUTPUT用做调试工具\r\n13.3.2 编写DEBUG包\r\n13.4 防止错误并规划以后的调试\r\n13.4.1 定义需求和规划项目\r\n13.4.2 使用模块化方法编码\r\n13.4.3 注释代码\r\n13.4.4 在代码中编写断言\r\n13.4.5 格式化代码\r\n13.5 总 结\r\n13.6 问与答\r\n13.7 测验和练习\r\n13.7.1 测验\r\n13.7.2 练习\r\n第14章 第14天课程:使用大型对象类型\r\n14.1 探讨大型对象数据类型\r\n14.1.1 LOB的局限性\r\n14.1.2 LOB和LONG数据类型的比较\r\n14.1.3 将LONG转换为LOB\r\n14.2 在Oracle8i数据库中使用外部文件\r\n14.2.1 创建目录对象\r\n14.2.2 BFILE的局限性\r\n14.3 将DBMS_LOB包用于BFILE\r\n14.3.1 BFILENAME函数\r\n14.3.2 COMPARE函数\r\n14.3.3 FILECOLOSE过程\r\n14.3.4 FILECLOSEALL过程\r\n14.3.5 FILEEXISTS函数\r\n14.3.6 FILEGETNAME过程\r\n14.3.7 FILEISOPEN函数\r\n14.3.8 FILEOPEN过程\r\n14.3.9 GETLENGTH函数\r\n14.3.10 INSTR函数\r\n14.3.11 READ过程\r\n14.3.12 SUBSTR函数\r\n14.4 使用DMBS_LOB包的BFILE范例\r\n14.4.1 访问BFILE\r\n14.4.2 比较文件\r\n14.5 使用定位器\r\n14.6 将DBMS_LOB包用于内部LOB\r\n14.6.1 APPEND过程\r\n14.6.2 COMPARE函数\r\n14.6.3 COPY过程\r\n14.6.4 EMPTY_BLOB函数\r\n14.6.5 EMPTY_CLOB函数\r\n14.6.6 ERASE过程\r\n14.6.7 GETLENGTH函数\r\n14.6.8 INSTR函数\r\n14.6.9 READ过程\r\n14.6.10 SUBSTR函数\r\n14.6.11 TRIM过程\r\n14.6.12 WRITE过程\r\n14.7 使用DMBS_LOB包的内部LOB范例\r\n14.7.1 创建一个表\r\n14.7.2 给表添加数据\r\n14.7.3 使用COPY过程将数据添加到表LOBS中\r\n14.7.4 使用APPEND和WRITE操纵内部LOB\r\n14.7.5 分析内部LOB的内容\r\n14.7.6 使用TRIM和ERASE编辑CLOB\r\n14.8 临时LOB\r\n14.8.1 管理临时LOB\r\n14.8.2 创建临时LOB\r\n14.9 总 结\r\n14.10 问与答\r\n14.11 测验和练习\r\n14.11.1 测验\r\n14.11.2 练习\r\n第2周课程复习\r\n第3部分 第3周课程\r\n第15章 第15天课程:管理事务和锁定\r\n15.1 事务类型\r\n15.2 开始事务\r\n15.3 结束事务\r\n15.4 撤销事务\r\n15.5 两步提交\r\n15.6 使用保存点创建书签\r\n15.7 使用RELEASE选项\r\n15.8 使用锁定\r\n15.8.1 锁定表\r\n15.8.2 锁定记录\r\n15.8.3 显式锁定\r\n15.8.4 DBMS_LOCK包\r\n15.8.5 使用其他锁定\r\n15.8.6 监视锁定\r\n15.9 总 结\r\n15.10 问与答\r\n15.11 测验和练习\r\n15.11.1 测验\r\n15.11.2 练习\r\n第16章 第16天课程:生成动态SQL\r\n16.1 什么是动态SQL,为何使用它\r\n16.2 两种使用动态SQL的方法\r\n16.3 使用DBMS_SQL包\r\n16.3.1 使用DBMS_SQL包执行非查询DDL和DML语句\r\n16.3.2 使用DBMS_SQL包执行查询\r\n16.3.3 使用DBMS_SQL包执行匿名PL/SQL块\r\n16.3.4 处理DBMS_SQL错误\r\n16.3.5 使用LAST_ROW_COUNT\r\n16.3.6 使用LAST_ROW_ID\r\n16.3.7 使用LAST_ERROR_POSITON\r\n16.4 使用本机动态SQL\r\n16.4.1 执行DML和DDL\r\n16.4.2 执行SQL查询\r\n16.4.3 执行PL/SQL块\r\n16.5 总 结\r\n16.6 问与答\r\n16.7 测验和练习\r\n16.7.1 测验\r\n16.7.2 练习\r\n第17章 第17天课程:将数据写到文件和显示屏\r\n17.1 DBMS_OUTPUT包\r\n17.1.1 开启DBMS_OUTPUT包\r\n17.1.2 关闭DBMS_OUTPUT包\r\n17.1.3 将数据写到缓冲区\r\n17.1.4 从缓冲区读取数据\r\n17.1.5 DBMS_OUTPUT包引发的异常\r\n17.2 使用UTL_FILE包读写文件\r\n17.2.1 文件输入\r\n17.2.2 使用UTL_FILE过程和函数\r\n17.2.3 FFLUSH过程\r\n17.2.4 使用UTL_FILE的范例\r\n17.3 将TEXT_IO用于客户文件\r\n17.4 总 结\r\n17.5 问与答\r\n17.6 测验和练习\r\n17.6.1 测验\r\n17.6.2 练习\r\n第18章 第18天课程:管理数据库作业\r\n18.1 使用DBMS_JOB包提交作业\r\n18.2 使用后台进程\r\n18.3 执行作业\r\n18.3.1 使用SUBMIT将作业提交给作业队列\r\n18.3.2 使用RUN立刻执行作业\r\n18.3.3 探讨作业环境\r\n18.4 查看作业\r\n18.4.1 查看作业的范例\r\n18.5 作业管理\r\n18.5.1 删除作业\r\n18.5.2 修改作业\r\n18.5.3 导入和导出作业\r\n18.5.4 处理损坏的作业\r\n18.6 练习管理作业\r\n18.6.1 创建作为作业提交的过程\r\n18.6.2 将所有的作业提交给作业队列\r\n18.6.3 立刻运行所有的三个作业\r\n18.6.4 查看关于作业的信息\r\n18.6.5 通过运行HELLO作业修改作业\r\n18.6.6 删除Hello作业\r\n18.7 总 结\r\n18.8 问与答\r\n18.9 测验和练习\r\n18.9.1 测验\r\n18.9.2 练习\r\n第19章 第19天课程:报警以及与其他过程通信:DBMS_ALERT和DBMS_PIPE包\r\n\r\n19.1 DBMS_ALERT包\r\n19.2 使用SIGNAL发布报警\r\n19.3 注册报警\r\n19.4 等待特定的报警\r\n19.5 等待所有已注册的报警\r\n19.6 删除一个报警\r\n19.7 删除所有的报警\r\n19.8 SET_DEFAULTS过程涉及的轮讯和事件\r\n19.9 演示DBMS_ALERT包的用法\r\n19.9.1 创建备份数据库\r\n19.9.2 创建触发器,以发送报警\r\n19.9.3 等待报警\r\n19.10 DBMS_PIPE包\r\n19.10.1 公有管道和私有管道\r\n19.10.2 使用管道\r\n19.10.3 DMBS_PIPE中的函数和过程\r\n19.10.4 使用管道的范例\r\n19.10.5 其他管道函数和过程\r\n19.10.6 管道的其他用途\r\n19.11 报警和管道的比较\r\n19.12 总 结\r\n19.13 问与答\r\n19.14 测验和练习\r\n19.14.1 测验\r\n19.14.2 练习\r\n第20章 第20天课程:PL/SQL和Java\r\n20.1 使用Oracle的Java引擎\r\n20.2 PL/SQL将被淘汰吗\r\n20.3 创建Java过程\r\n20.3.1 需要的前提条件\r\n20.3.2 SS_CONSTANTS类\r\n20.3.3 装载类\r\n20.3.4 公布SSThresh方法\r\n20.3.5 在SQL*Plus中调用SS_THRESH\r\n20.3.6 在PL/SQL中调用SS_THRESH\r\n20.3.7 删除SSContants类\r\n20.4 从PL/SQL中调用Java\r\n20.4.1 Employee类\r\n20.4.2 公布Java方法\r\n20.4.3 数据类型兼容性\r\n20.4.4 使用OUT和IN OUT参数\r\n20.5 使用SQLJ从Java中调用PL/SQL\r\n20.5.1 使用SQLJ执行匿名PL/SQL块\r\n20.5.2 使用SQLJ调用PL/SQL过程或函数\r\n20.6 总 结\r\n20.7 问与答\r\n20.8 测验和练习\r\n20.8.1 测验\r\n20.8.2 练习\r\n第21章 第21天课程:高级排队\r\n21.1 什么是AQ\r\n21.1.1 揭开AQ的神秘面纱\r\n21.1.2 AQ的重要特性\r\n21.2 配置服务器,以便使用AQ\r\n21.3 探讨AQ方案\r\n21.4 创建一个消息队列\r\n21.4.1 为负载定义一个类型\r\n21.4.2 创建队列表\r\n21.4.3 创建队列\r\n21.5 启动和关闭队列\r\n21.6 将消息放入队列\r\n21.6.1 与入队相关的记录类型\r\n21.6.2 将消息放入队列\r\n21.7 从队列中检索消息\r\n21.7.1 与出队相关的记录类型\r\n21.7.2 将消息从队列中取出\r\n21.8 使用其他AQ过程\r\n21.8.1 删除队列\r\n21.8.2 删除队列表\r\n21.8.3 授予和收回访问队列的权限\r\n21.9 总 结\r\n21.10 问与答\r\n21.11 测验和练习\r\n21.11.1 测验\r\n21.11.2 练习\r\n第3周课程复习\r\n附录A 测验和练习答案
无封面