图书介绍
21天学通PL/SQLPDF|Epub|txt|kindle电子书版本网盘下载
![21天学通PL/SQL](https://www.shukui.net/cover/24/31452906.jpg)
- (美)Jonathan Gennick,(美)Tom Luers著;袁国忠,陈文飞译 著
- 出版社: 北京:人民邮电出版社
- ISBN:7115086885
- 出版时间:2000
- 标注页数:570页
- 文件大小:31MB
- 文件页数:595页
- 主题词:
PDF下载
下载说明
21天学通PL/SQLPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1部分 第1周课程1
第1章 第1天课程:学习PL/SQL基础知识3
1.1 PL/SQL是什么3
1.2 为什么要学习PL/SQL4
1.3 SQL、SQL*Plus、PL/SQL之间的差别4
1.3.1 SQL5
1.3.2 PL/SQL5
1.3.3 SQL*Plus5
1.3.4 阅读本书需要的资源6
1.4 开始使用PL/SQL8
1.4.1 PL/SQL是块结构化的8
1.4.2 编译和执行简单的块9
1.4.3 生成输出结果10
1.4.4 避免重新输入11
1.4.5 编写第一个函数12
1.4.6 查找编译错误13
1.4.7 显示函数的返回值14
1.5.1 启动过程生成器15
1.4.8 这个简单的函数有用吗15
1.5 使用Developer/2000中的过程生成器执行PL/SQL15
1.5.2 使用交互式PL/SQL16
1.5.3 创建SS_THRESH函数17
1.5.4 与数据库相连18
1.6 使用SQLPlus Wroksheet18
1.6.1 使用SQLPlus Wroksheet执行PL/SQL块19
1.7 总结19
1.8 问与答20
1.9 测验和练习20
1.9.1 测验20
1.9.2 练习21
第2章 第2天课程:编写声明和块23
2.1 探讨数据类型23
2.1.1 VARCHAR225
2.1.2 VARCHAR2的子类型25
2.1.3 CHAR25
2.1.5 NUMBER27
2.1.4 CHAR子类型27
2.1.6 BINARY_INTEGER29
2.1.7 PLS_INTEGER32
2.1.8 DATE32
2.1.9 BOOLEN33
2.1.10 LONG33
2.1.11 RAW34
2.1.12 LONG RAW34
2.1.15 MSLABEL35
2.2 使用块结构35
2.1.13 ROWID35
2.1.14 UROWID35
2.2.1 匿名块36
2.2.2 函数和过程块37
2.2.3 触发器块39
2.2.4 嵌套块40
2.2.5 嵌套函数和过程42
2.2.6 作用域规则45
2.3 总结46
2.4 问与答47
2.5 测验和练习47
2.5.1 测验47
2.5.2 练习47
第3章 第3天课程:编写PL/SQL表达式49
3.1 理解操作符、表达式和转换49
3.2 使用PL/SQL操作符建立表达式50
3.2.1 算术操作符50
3.2.2 比较操作符53
3.2.3 逻辑操作符59
3.2.4 字符串操作符61
3.3 对字符串使用比较操作符62
3.3.1 字符集对字符串比较的影响62
3.3.2 大小写对字符串比较的影响64
3.4 对日期使用比较操作符65
3.5 使用表达式66
3.5.1 定义表达式66
3.5.2 操作符优先级67
3.5.4 表达式中的空值68
3.5.3 表达式类型68
3.6.1 隐式转换73
3.6 转换数据类型73
3.6.2 显式转换75
3.7 总结76
3.8 问与答77
3.9 测验和练习78
3.9.1 测验78
3.9.2 练习78
4.1 使用PL/SQL函数79
第4章 第4天课程:使用函数、IF语句和循环79
4.1.1 定义参数:形参和实参81
4.1.2 返回类型83
4.1.3 函数违规84
4.1.4 异常处理84
4.1.5 创建存储函数84
4.1.6 查找错误86
4.2.2 如何从PL/SQL中使用或不使用参数调用函数87
4.2 NULL语句87
4.2.1 为何使用NULL语句87
4.2.3 调用者和定义者的权限88
4.3 使用PL/SQL语句89
4.3.1 IF语句89
4.3.2 IF…THEN…ELSE语句90
4.3.3 嵌套IF语句91
4.3.4 使用IF…ELSIF语句93
4.3.5 嵌套IF语句和ELSIF语句95
4.3.6 格式化IF语句95
4.3.7 避免IF语句中的常见错误96
4.3.8 循环语句96
4.3.9 反向循环97
4.3.10 修改步长98
4.4 总结99
4.5 问与答99
4.6.1 测验100
4.6.2 练习100
4.6 测验和练习100
第5章 第5天课程:实现循环和GOTO语句101
5.1 探讨标号和GOTO语句101
5.1.1 语句标号101
5.1.2 GOTO语句102
5.1.3 GOTO语句的作用域规则102
5.1.4 使用GOTO语句的范例105
5.2 WHILE循环106
5.2.1 WHILE循环范例106
5.1.5 为何使用GOTO语句106
5.3 EXIT语句和EXIT WHEN语句110
5.3.1 使用EXIT和EXIT WHEN语句的范例110
5.3.2 在循环中使用标号和EXIT语句113
5.4 简单循环114
5.4.1 简单循环范例115
5.4.2 创建一个REPEAT…UNTIL循环115
5.4.3 模仿的REPEAT…UNTIL循环范例116
5.5 应该使用哪种循环116
5.6.1 循环的格式117
5.6 使用循环的指导原则117
5.7 递归119
5.7.1 准则119
5.7.2 练习使用递归119
5.7.3 为何使用递归121
5.8 总结122
5.9 问与答122
5.10 测验和练习122
5.10.2 练习123
5.10.1 测验123
第6章 第6天课程:使用Oracle的内置函数125
6.1 SQL函数和PL/SQL函数的比较125
6.2 主要的函数类型126
6.3 试验函数129
6.4 使用转换函数130
6.4.1 使用TO_DATE函数130
6.4.2 使用TO_CHAR134
6.4.3 使用TO_NUMBER136
6.4.4 使用TO_CHAR函数140
6.5.1 SYSDATE函数141
6.5 日期函数141
6.5.2 TRUNC函数142
6.5.3 ADD_MONTHS函数144
6.5.4 NEXT_DAY函数144
6.5.5 LAST_DAY函数146
6.5.6 MONTHS_BETWEEN0函数147
6.5.7 NEW_TIME函数147
6.5.9 TRIM函数149
6.5.8 ROUND函数149
6.6 总结150
6.7 问与答150
6.8 测验和练习151
6.8.1 测验151
6.8.2 练习151
第7章 第7天课程:过程、包、错误和异常153
7.1 使用过程153
7.1.3 创建过程154
7.1.1 为何使用过程154
7.1.2 过程和函数154
7.1.4 RETURN语句155
7.1.5 过程依赖性155
7.1.6 重新编译存储过程156
7.1.7 重新创建和修改函数156
7.1.8 调用存储过程157
7.1.9 使用参数158
7.1.10 参数定义158
7.1.11 列出存储过程的信息158
7.1.12 删除存储过程159
7.1.13 重载过程159
7.1.14 使用递归过程160
7.2 过程调用的安全性161
7.3 探讨包161
7.3.1 为何使用包162
7.3.2 包规范162
7.3.3 包体163
7.3.4 创建包164
7.3.5 调用包子程序165
7.3.6 重新编译包166
7.3.7 公有和私有包对象166
7.3.8 包调用的安全性166
7.3.9 变量、游标和常量的持续性167
7.3.10 包状态167
7.3.11 包的依赖性167
7.4 捕获错误和异常167
7.4.1 异常处理结构168
7.4.2 SQLCODE和SQLERRM函数171
7.4.3 发生异常后继续处理173
7.4.4 发生异常后重试174
7.4.5 重新引发异常175
7.5 总结176
7.6 问与答176
7.4.7 传播异常176
7.4.6 异常的作用域规则176
7.7 测验和练习177
7.7.1 测验177
7.7.2 练习177
第1周 课程复习178
第2部分 第2周课程179
第8章 第8天课程:使用SQL181
8.2 创建一些Oracle表182
8.1 SQL DML语句的类型182
8.3 使用INSERT语句184
8.3.1 插入一些数据185
8.4 单个的SELECT语句187
8.4.1 SELECT语句范例187
8.5 使用UPDATE语句和DELETE语句188
8.6 异常处理类型189
8.7 使用LOCK TABLE语句190
8.8 事务控制语句191
8.9 使用记录191
8.9.1 声明记录变量191
8.9.3 使用基于数据库表的记录变量192
8.9.2 使用%TYPE属性192
8.9.4 使用记录变量和SELECT语句193
8.9.5 使用基于游标定义的记录变量195
8.9.6 包层次的声明196
8.10 伪列197
8.10.1 CURRVAL伪列和NEXTVAL伪列197
8.10.2 ROWID伪列197
8.12 问与答198
8.11 总结198
8.10.3 ROWNUM伪列198
8.13 测验和练习199
8.13.1 测验199
8.13.2 练习199
第9章 第9天课程:使用游标操纵数据201
9.1 什么是游标201
9.2 显式游标202
9.2.1 声明游标202
9.2.2 声明游标参数203
9.2.3 打开游标204
9.2.4 将数据取回到游标中205
9.2.5 关闭游标206
9.2.6 显式游标的属性206
9.3 显式游标范例208
9.3.1 使显式游标自动化209
9.4 隐式游标210
9.4.1 隐式游标的属性210
9.5 游标参数的作用域212
9.6 游标RETURN子句和包212
9.7.1 声明游标变量213
9.7 游标变量213
9.7.2 通过游标变量使用游标214
9.7.3 将游标变量赋给其他变量215
9.7.4 将游标变量作为参数215
9.8 游标的当前记录217
9.9 游标的作用域217
9.10 游标别名218
9.13.1 测验219
9.13 测验和练习219
9.12 问与答219
9.11 总结219
9.13.2 练习220
第10章 第10天课程:集合221
10.1 使用PL/SQL索引表221
10.1.1 声明索引表222
10.1.2 将条目插入到索引表中222
10.1.3 引用索引表中的值224
10.1.5 删除表中的条目225
10.1.4 修改表中的条目225
10.1.6 PL/SQL表的方法227
10.2 使用嵌套表229
10.2.1 声明嵌套表229
10.2.2 给嵌套表添加条目230
10.2.3 删除嵌套表中的条目233
10.3 使用变长数组236
10.3.1 声明和初始化变长数组236
10.3.2 给变长数组添加和删除数据237
10.4.1 使用BULK COLLECT239
10.4 使用批绑定239
10.4.2 使用FORALL241
10.5 集合的异常处理242
10.6 总结243
10.7 问与答243
10.8 测验和练习244
10.8.1 测验244
10.8.2 练习244
11.1 什么是触发器245
第11章 第11天课程:编写数据库触发器245
11.2 DML触发器246
11.2.1 DML触发器范例246
11.2.2 DML触发器分类247
11.2.3 定义数据库触发器的语法249
11.3 触发器的用途250
11.3.1 维护数据完整性250
11.3.2 维护历史记录254
11.4.1 列出触发器257
11.4 管理触发器257
11.4.2 查看触发器的代码258
11.4.3 打开和关闭触发器260
11.5 非传统触发器261
11.5.1 定义作用于数据库事件或模式事件的触发器的语法261
11.5.2 事件属性262
11.5.3 编写一个数据库事件触发器263
11.5.4 编写DDL事件触发器265
11.6 使用替代触发器266
11.6.2 编写一个替代触发器267
11.6.1 定义替代触发器的语法267
11.7 探讨触发器的局限性269
11.7.1 触发器和变化表269
11.8 总结278
11.9 问与答278
11.10 测验和练习279
11.10.1 测验279
11.10.2 练习279
12.1 面向对象编程的基本知识281
第12章 第12天课程:将Oracle8i对象用于面向对象编程281
12.1.1 封装282
12.1.2 继承282
12.1.3 多态282
12.1.4 类、对象、属性和方法283
12.1.5 OOP优于传统方法的地方283
12.2 Oracle8i是如何实现对象的283
12.3 定义对象类型284
12.2.3 对象视图284
12.2.2 对象表284
12.2.1 对象类型284
12.3.1 构造函数288
12.3.2 取值方法288
12.3.3 赋值方法289
12.4 实例化和使用对象289
12.5 存储和检索对象292
12.5.1 将对象存储为表字段292
12.5.2 检索和更新表字段中的对象293
12.6 使用对象表295
12.6.1 将对象存储在对象表中297
12.6.2 检索和更新对象表中的对象298
12.6.3 删除对象表中的对象300
12.7 嵌套和共享对象301
12.7.1 点号表示法301
12.7.2 对象引用302
12.8 探讨SELF参数305
12.9 重载306
12.10 比较对象307
12.10.1 ORDER方法308
12.10.2 MAP方法309
12.11 Oracle实现的局限性310
12.12 总结310
12.13 问与答310
12.14 测验和练习311
12.14.1 测验311
12.14.2 练习311
13.1.1 识别语法错误313
第13章 第13天课程:调试代码并防止错误313
13.1 定位并消除语法错误313
13.1.2 一个识别语法错误的范例315
13.1.3 防止语法错误319
13.2 处理逻辑错误320
13.2.1 操作次序320
13.2.2 死循环321
13.2.3 逻辑错误的排除方法321
13.3.1 将DBMS_OUTPUT用做调试工具324
13.3 使用工具帮助调试程序324
13.3.2 编写DEBUG包325
13.4 防止错误并规划以后的调试330
13.4.1 定义需求和规划项目330
13.4.2 使用模块化方法编码331
13.4.3 注释代码331
13.4.4 在代码中编写断言333
13.4.5 格式化代码335
13.6 问与答337
13.5 总结337
13.7.1 测验338
13.7.2 练习338
13.7 测验和练习338
第14章 第14天课程:使用大型对象类型339
14.1 探讨大型对象数据类型339
14.1.1 LOB的局限性340
14.1.2 LOB和LONG数据类型的比较340
14.1.3 将LONG转换为LOB341
14.2 在Oracle8i数据库中使用外部文件341
14.2.1 创建目录对象341
14.2.2 BFILE的局限性342
14.3 将DBMS_LOB包用于BFILE342
14.3.1 BFILENAME函数343
14.3.2 COMPARE函数343
14.3.5 FILEEXISTS函数344
14.3.6 FILEGETNAME过程344
14.3.3 FILECOLOSE过程344
14.3.4 FILECLOSEALL过程344
14.3.7 FILEISOPEN函数345
14.3.8 FILEOPEN过程345
14.3.9 GETLENGTH函数345
14.3.10 INSTR函数346
14.3.11 READ过程346
14.4 使用DMBS_LOB包的BFILE范例347
14.4.1 访问BFILE347
14.3.12 SUBSTR函数347
14.4.2 比较文件349
14.5 使用定位器351
14.6 将DBMS_LOB包用于内部LOB352
14.6.1 APPEND过程352
14.6.2 COMPARE函数353
14.6.3 COPY过程353
14.6.4 EMPTY_BLOB函数354
14.6.5 EMPTY_CLOB函数354
14.6.8 INSTR函数355
14.6.7 GETLENGTH函数355
14.6.6 ERASE过程355
14.6.9 READ过程356
14.6.10 SUBSTR函数357
14.6.11 TRIM过程357
14.6.12 WRITE过程358
14.7 使用DMBS_LOB包的内部LOB范例358
14.7.1 创建一个表358
14.7.2 给表添加数据359
14.7.3 使用COPY过程将数据添加到表LOBS中360
14.7.4 使用APPEND和WRITE操纵内部LOB361
14.7.5 分析内部LOB的内容363
14.7.6 使用TRIM和ERASE编辑CLOB364
14.8 临时LOB366
14.8.1 管理临时LOB366
14.8.2 创建临时LOB366
14.10 问与答367
14.11 测验和练习367
14.9 总结367
14.11.1 测验368
14.11.2 练习368
第2周课程复习369
第3部分 第3周课程371
第15章 第15天课程:管理事务和锁定373
15.1 事务类型373
15.2 开始事务374
15.3 结束事务375
15.4 撤销事务376
15.5 两步提交376
15.6 使用保存点创建书签377
15.7 使用RELEASE选项377
15.8 使用锁定378
15.8.1 锁定表378
15.8.2 锁定记录379
15.8.3 显式锁定379
15.8.4 DBMS_LOCK包379
15.8.6 监视锁定382
15.8.5 使用其他锁定382
15.9 总结383
15.10 问与答383
15.11 测验和练习383
15.11.1 测验383
15.11.2 练习383
第16章 第16天课程:生成动态SQL385
16.1 什么是动态SQL,为何使用它385
16.2 两种使用动态SQL的方法386
16.3 使用DBMS_SQL包387
16.3.1 使用DBMS_SQL包执行非查询DDL和DML语句387
16.3.2 使用DBMS_SQL包执行查询393
16.3.3 使用DBMS_SQL包执行匿名PL/SQL块401
16.3.4 处理DBMS_SQL错误404
16.3.5 使用LAST_ROW_COUNT404
16.3.6 使用LAST_ROW_ID405
16.4.1 执行DML和DDL407
16.4 使用本机动态SQL407
16.3.7 使用LAST_ERROR_POSITON407
16.4.2 执行SQL查询410
16.4.3 执行PL/SQL块412
16.5 总结413
16.6 问与答413
16.7 测验和练习414
16.7.1 测验414
16.7.2 练习414
17.1 DBMS_OUTPUT包415
第17章 第17天课程:将数据写到文件和显示屏415
17.1.1 开启DBMS_OUTPUT包416
17.1.2 关闭DBMS_OUTPUT包416
17.1.3 将数据写到缓冲区417
17.1.4 从缓冲区读取数据418
17.1.5 DBMS_OUTPUT包引发的异常422
17.2 使用UTL_FILE包读写文件423
17.2.1 文件输入423
17.2.2 使用UTL_FILE过程和函数424
17.2.4 使用UTL_FILE的范例429
17.2.3 FFLUSH过程429
17.3 将TEXT_IO用于客户文件432
17.4 总结434
17.5 问与答434
17.6 测验和练习435
17.6.1 测验435
17.6.2 练习435
18.1 使用DBMS_JOB包提交作业437
第18章 第18天课程:管理数据库作业437
18.2 使用后台进程438
18.3 执行作业439
18.3.1 使用SUBMIT将作业提交给作业队列439
18.3.2 使用RUN立刻执行作业441
18.3.3 探讨作业环境441
18.4 查看作业443
18.4.1 查看作业的范例444
18.5 作业管理445
18.5.1 删除作业446
18.5.2 修改作业446
18.5.3 导入和导出作业447
18.5.4 处理损坏的作业447
18.6 练习管理作业448
18.6.1 创建作为作业提交的过程448
18.6.2 将所有的作业提交给作业队列450
18.6.3 立刻运行所有的三个作业450
18.6.4 查看关于作业的信息451
18.6.5 通过运行HELLO作业修改作业452
18.6.6 删除Hello作业453
18.7 总结454
18.8 问与答454
18.9 测验和练习455
18.9.1 测验455
18.9.2 练习455
第19章 第19天课程:报警以及与其他过程通信:DBMS_ALERT和DBMS_PIPE包457
19.1 DBMS_ALERT包457
19.3 注册报警458
19.2 使用SIGNAL发布报警458
19.4 等待特定的报警459
19.5 等待所有已注册的报警459
19.6 删除一个报警460
19.7 删除所有的报警460
19.8 SET_DEFAULTS过程涉及的轮讯和事件460
19.9 演示DBMS_ALERT包的用法460
19.9.1 创建备份数据库461
19.9.2 创建触发器,以发送报警462
19.9.3 等待报警463
19.10 DBMS_PIPE包466
19.10.1 公有管道和私有管道467
19.10.2 使用管道467
19.10.3 DMBS_PIPE中的函数和过程468
19.10.4 使用管道的范例472
19.10.5 其他管道函数和过程475
19.10.6 管道的其他用途476
19.11 报警和管道的比较476
19.13 问与答477
19.12 总结477
19.14.1 测验478
19.14.2 练习478
19.14 测验和练习478
第20章 第20天课程:PL/SQL和Java479
20.1 使用Oracle的Java引擎479
20.2 PL/SQL将被淘汰吗480
20.3 创建Java过程481
20.3.1 需要的前提条件481
20.3.3 装载类482
20.3.2 SS_CONSTANTS类482
20.3.4 公布SSThresh方法484
20.3.5 在SQL*Plus中调用SS_THRESH485
20.3.6 在PL/SQL中调用SS_THRESH485
20.3.7 删除SSContants类486
20.4 从PL/SQL中调用Java487
20.4.1 Employee类487
20.4.2 公布Java方法489
20.4.3 数据类型兼容性491
20.4.4 使用OUT和IN OUT参数493
20.5 使用SQLJ从Java中调用PL/SQL495
20.5.1 使用SQLJ执行匿名PL/SQL块495
20.5.2 使用SQLJ调用PL/SQL过程或函数497
20.6 总结500
20.7 问与答500
20.8 测验和练习500
20.8.2 练习501
20.8.1 测验501
第21章 第21天课程:高级排队503
21.1 什么是AQ503
21.1.1 揭开AQ的神秘面纱504
21.1.2 AQ的重要特性505
21.2 配置服务器,以便使用AQ505
21.3 探讨AQ方案506
21.4 创建一个消息队列507
21.4.1 为负载定义一个类型507
21.4.2 创建队列表508
21.4.3 创建队列510
21.5 启动和关闭队列512
21.6 将消息放入队列513
21.6.1 与入队相关的记录类型513
21.6.2 将消息放入队列516
21.7 从队列中检索消息518
21.7.1 与出队相关的记录类型518
21.7.2 将消息从队列中取出519
21.8.1 删除队列521
21.8 使用其他AQ过程521
21.8.2 删除队列表522
21.8.3 授予和收回访问队列的权限522
21.9 总结523
21.10 问与答524
21.11 测验和练习524
21.11.1 测验524
21.11.2 练习524
第3周课程复习525
附录A 测验和练习答案527