《Oracle 9i开发指南:PL/SQL程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)卡斯特尔(Casteel,J.)著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2004
  • ISBN:730208002X
  • 页数:438 页
图书介绍:本书以Brewbcan's公司在应用程序开发中遇到的问题为线索,系统介绍了Oracle 9i的PL/SQL程序设计。主要介绍了PL/SQL块中的处理数据、过程、函数、软件包、程序单元的依赖性、数据库触发器及简要的对象技术简介以及程序的性能优化等内容。每章备有练习题,课外作业和实例研究以巩固学习内容。

目录 1

第1章PL/SQL简介 1

1.1程序设计语言和过程语言 2

1.2应用程序设计和PL/SQL 2

1.2.1应用程序设计 2

第7章程序单元依赖性 21 3

1.2.2 PL/SQL的历史 4

1.3应用程序模型 4

1.3.1两层或客户-服务器应用程序模型 5

1.3.2三层应用程序模型 6

1.4 Web和配套光盘上的文档 7

1.5 SQL和PL/SQL工具 8

1.5.1本书中使用的软件工具 8

1.5.2第三方PL/SQL开发工具 10

1.6本书中使用的数据库 11

1.7本章总结 14

1.8复习题 15

1.9课外作业 16

作业1-1:查看Brewbean s数据库中的数据 16

作业14:使用OTN文档 18

作业1-2:检查第三方软件工具 18

作业1-3:识别处理步骤 18

实例1-1:查看Procedure Builder文档 19

实例1-2:More Movies数据库 19

1.10实例研究 19

第2章在PL/SQL块中处理数据 21

2.1 Brewbean s应用程序目前所面临的难题 22

2.2 PL/SQL块的结构 23

2.3使用变量 24

2.4使用标量变量 24

2.4.1代码中的变量声明 25

2.4.2变量初始化 26

2.4.3 NOTNULL和CONSTANT 26

2.4.4标量变量在BEGIN部分中的作用 27

2.4.5使用DBMS_OUTPUT检查值 27

2.5在PL/SQL块中包括SQL 28

2.6执行有错误的PL/SQL块 30

4.12子程序 1 34

2.7使用主机或绑定变量 34

2.8%TYPE属性 35

2.9使用复合数据类型 36

2.9.1记录数据类型 36

2.9.2%ROWTYPE属性的作用 38

2.9.3记录表 39

2.10使用IF语句和循环操作的处理 42

2.10.1简单的IF语句 42

2.10.2基本循环和FOR循环 42

2.11使用集合 43

2.11.1按索引组织的表 43

2.11.2其他集合:VARRAY和嵌套表 46

2.12使用游标 46

2.12.1 隐式游标 47

2.12.2显式游标 48

2.12.3游标变量 55

2.13了解变量范围 56

2.14本章总结 58

2.15复习题 59

2.16高级复习题 61

2.17课外作业 62

作业2-1:使用标量变量 62

作业2-2:使用记录变量 63

作业2-3:使用显式游标 65

作业2-4:使用CURSOR FOR循环 65

作业2-6:使用变量范围 67

作业2-7:对数据检索使用标量变量 67

作业2-8:对数据检索使用记录变量 67

2.18实例研究 67

实例2-1:变量类型 67

实例2-2:More Movie Rentals 67

作业2-5:使用隐式游标 67

第3章PL/SQL处理 68

3.1 Brewbean s应用程序目前所面临的难题 69

3.2重建数据库 69

3.3.1 IF语句逻辑 70

3.3控制结构 70

3.3.2CASE语句 77

3.4循环结构 80

3.4.1 基本循环 80

3.4.2 WHILE循环 82

3.4.3 FOR循环 83

3.4.4使用循环语句时常犯的错误 85

3.6异常处理程序 86

3.5 GOTO语句 86

3.6.1预定义的Oracle错误 87

3.6.2非预定义的Oracle错误 92

3.6.3用户定义的异常 93

3.7其他异常概念 95

3.7.1 WHEN OTHERS、SQLCODE和SQLERRM 95

3.7.2 RAISE_APPLICATION_ERROR 98

3.7.3异常的传播 98

3.8注释代码 102

3.9本章总结 103

3.10复习题 104

3.11 高级复习题 105

3.12课外作业 107

作业3-1:使用IF语句 107

作业3-2:使用搜索的CASE语句 107

作业3-3:使用WHILE循环 109

作业34:使用异常处理 111

作业3-5:使用IF语句 112

作业3-6:执行预定义错误的异常处理 112

作业3-7:执行非预定义错误的异常处理 112

实例3-1:Brewbean s应用程序的异常处理程序 113

3.13实例研究 113

作业3-8:对用户定义的错误执行异常处理 113

实例3-2:More Movie Rentals 114

第4章过程 115

4.1 Brewbean s应用程序目前所面临的难题 116

4.2重建数据库 117

4.3命名程序单元简介 118

4.3.1 客户和服务器方面的考虑事项 118

4.3.2命名程序单元的类型 119

4.4使过程可以重新使用:参数 120

4.5创建过程语句 120

4.5.1 名称 120

4.5.2模式 121

4.5.3数据类型 121

4.6在SQL*Plus中创建过程 122

4.6.1 当CREATE PROCEDURE语句产生错误时 122

4.6.2测试过程 123

4.7使用IN OUT参数模式 125

4.8.1创建调用另一个过程的过程 127

4.8从另一个PL/SQL块调用过程 127

4.8.2测试过程 128

4.9 DESCRIBE命令 129

4.10在SQL*PLUS中通过将信息显示在屏幕上来进行调试 129

4.11可用来帮助开发程序单元的软件实用程序 134

4.13异常处理和事务范围 135

4.14使用RALSE_APPLICATION_ERROR处理错误 138

4.15删除过程 139

4.16本章总结 139

4.17复习题 140

4.18高级复习题 141

作业4-1:创建过程 143

4.19课外作业 143

作业4-2:使用带有IN参数的过程 144

作业4-3:计算订单的税额 144

作业4-4:更新表中的列 144

作业4-5:更新订单的状态 145

作业4-6:返回订单状态信息 145

作业4-7:识别顾客 146

作业4-8:向购物车添加项目 146

作业4-9:创建登录过程 146

4.20实例研究 147

实例4-1:报告和分析汇总表 147

实例4-2:More Movie Rentals公司的租赁过程 147

第5章函数 148

5.1 Brewbean s应用程序目前所面临的难题 149

5.2重建数据库 150

5.3 函数简介 151

5.4在SQL*Plus中创建存储函数 152

5.4.1 调用和测试所创建的函数 153

5.4.2在SQL语句中使用函数 154

5.4.3创建和测试用于显示Brewbean s的会员姓名的函数 155

5.5在函数中使用OUT参数模式 158

5.6 多个RETURN语句 159

5.7 在过程中使用RETURN语句 160

5.8实参和形参的约束 160

5.10控制使用哪一种值传递技术 162

5.9传递参数值的技术 162

5.11函数纯度 164

5.12程序单元上的数据字典信息 167

5.13删除程序单元 168

5.14本章总结 168

5.15复习题 169

5.16高级复习题 170

5.17课外作业 173

作业5-1:将数字格式化为货币 173

作业5-3:按顾客计算订单数量 174

作业5-4:识别订单日期是一周中的哪一天 174

作业5-2:计算顾客总的消费情况 174

作业5-5:计算订购日期与发货日期之间的天数 175

作业5-6:识别订单状态代码的描述 175

作业5-7:计算订单的税额 175

作业5-8:识别特价销售的产品 176

5.18实例研究 176

实例5-1:在订单完成时更新购物篮数据 176

实例5-2:More Movies Rentals 177

第6章PL/SQL软件包 178

6.1 Brewbean s应用程序目前所面临的难题 179

6.2重建数据库 179

6.3软件包规范 180

6.3.1 软件包规范中的声明 180

6.4软件包主体 181

6.3.2项目在规范中的顺序 181

6.5调用软件包结构 184

6.6软件包结构范围 186

6.7软件包全局结构 187

6.7.1 测试封装变量的持续性 188

6.7.2没有主体的软件包规范 190

6.7.3提高处理效率 191

6.7.4软件包中的向前声明 193

6.8一次性过程 195

6.9在软件包中重载程序单元 198

6.10管理封装函数的SQL限制 201

6.10.2 使用PRAGMA RESTRICT_REFERENCES 202

6.10.1 为什么开发人员会指出纯度 202

6.10.3封装函数的默认纯度 203

6.10.4使用外部语言编写的函数 203

6.11程序单元和软件包执行权限 204

6.12软件包的数据字典信息 204

6.13删除软件包 206

6.14本章总结 206

6.15复习题 207

6.16高级复习题 209

作业6-3:创建包含私有程序单元的软件包 210

作业6-1:创建软件包 210

6.17课外作业 210

作业6-2:使用封装程序单元 210

作业6-4:使用封装变量 211

作业6-5:软件包重载 211

作业6-6:创建只包含规范的软件包 211

作业6-7:在软件包中使用游标 212

作业6-8:在软件包中使用一次性过程 212

6.18实例研究 212

实例6-1:Brewbean s订单结账软件包 212

实例6-2:封装More Movies程序单元 212

7.2重建数据库 214

7.3本地依赖性活动 214

7.1 Brewbean s应用程序目前所面临的难题 214

7.4认识直接依赖性和间接依赖性 218

7.5用于依赖性的数据字典视图 219

7.6依赖性树实用程序 220

7.7软件包依赖性 224

7.8远程对象依赖性 228

7.9远程依赖性的失效方法 231

7.10避免重新编译错误的提示 233

7.11授予程序单元权限 233

7.12本章总结 236

7.13复习题 236

7.14高级复习题 239

作业7-2:测试独立程序单元的依赖性 241

7.15 课外作业 241

作业7-1:在数据字典中查看依赖性信息 241

作业7-3:测试封装程序单元的依赖性 242

作业7-4:测试远程对象依赖性 243

作业7-5:使用依赖性树实用程序识别所有依赖性 244

作业7-6:查看utldtree.sql脚本 244

作业7-7:避免重新编译错误 244

作业7-8:识别依赖性的类型 244

7.16实例研究 244

实例7-1:维护Brewbean s应用程序 244

实例7-2:More Movies Rental应用程序 244

第8章数据库触发器 246

8.1 Brewbean s应用程序目前所面临的难题 247

8.2重建数据库 248

8.3数据库触发器简介 249

8.4数据库触发器的语法和选项 249

8.4.1数据库触发器代码的例子 250

8.4.2触发器的执行时间和相关性标识符 251

8.4.3触发器事件 253

8.4.4触发器主体 253

8.4.5条件谓词 . 255

8.5在SQL*Plus中创建和测试DML触发器 256

8.6创建和测试Instead-Of触发器 258

8.7系统触发器 261

8.8应用触发器来满足处理需求 263

8.9包含变化表的触发器用法简介 266

8.10 ALTER TRIGGER语句 269

8.11删除触发器 270

8.12触发器的数据字典信息 270

8.13本章总结 271

8.14复习题 272

8.15高级复习题 274

8.16课外作业 275

作业8-1:创建一个触发器来实现产品的重新进货 275

作业8-2:在填充产品需求时更新库存信息 276

作业8-3:在取消一个产品完成操作时更新库存水平 277

作业8-4:在取消订单时更新库存水平 278

作业8-7:更新汇总数据表 279

作业8-5:处理打折 279

作业8-6:使用触发器维护引用完整性 279

作业8-8:维护产品表更改的审核追踪 280

8.17实例研究 280

实例8-1:映射数据库触发器的流程 280

实例8-2:More Movies库存处理 281

第9章Oracle提供的软件包 282

9.1 Brewbean s应用程序目前所面临的难题 283

9.2重建数据库 283

9.3通信 284

9.3.DBMS_PIPE软件包 284

9.3.2DBMS_ALERT软件包 286

9.3.3 UTL_SMTP软件包 287

9.3.4 UTL_HTTp软件包 290

9.3.5 UTL_TCP软件包 291

9.4产生输出 291

9.4.1 DBMS_OUTPUT软件包 291

9.4.2 UTL_FILE软件包 296

9.5大对象 298

9.5.DBMS_LOB软件包 299

9.5.2使用DBMS_LOB处理图像 299

9.6动态SQL和PL/SQL 302

9.7杂项软件包 302

9.7.DBMS_JOB软件包 302

9.7.2DBMS_DDL软件包 308

9.8本章总结 311

9.7.3 了解Oracle提供的其他软件包 311

9.9复习题 312

9.10高级复习题 313

9.11课外作业 314

作业9-1:使用DBMS_PIPE软件包 314

作业9-2:使用DBMS_ALERT软件包 315

作业9-3:使用DBMS_DDL软件包 316

作业9-4:使用UTL_FILE软件包读取和插入数据 317

作业9-5:使用UTL_FILE软件包插入数据列 318

作业9-6:使用UTL_SMTP发送电子邮件 318

实例9-2:More Movies公司 319

实例9-1:搜索Oracle内置软件包 319

9.12实例研究 319

作业9-8:使用DBMS_OUTPUT 319

作业9-7:使用DBMS_JOB软件包 319

第10章动态SQL和对象技术简介 321

10.1 Brewbean s应用程序目前所面临的难题 322

10.2重建数据库 322

10.3动态SQL 322

10.3.DBMS_SQL软件包 324

10.3.2本机动态SQL 332

10.3.DBMS_SQL与本机动态SQL 335

10.4对象技术 336

10.4.1创建对象类型 337

10.4.2使用对象类型 337

10.4.3对象方法 340

10.4.4对象关系 341

10.4.5 REF指针与外键 344

10.4.6对象视图 345

10.4.7对对象类型列进行排序和比较 347

10.5本章总结 350

10.6复习题 350

10.7课外作业 353

作业10-1:使用DBMS_SQL软件包 353

作业10-2:使用本机动态SQL 353

作业10-3:创建对象类型 354

作业10-4:创建对象视图 355

作业10-6:使用本机动态SQL 356

作业10-5:创建一种具有排序功能的产品对象类型 356

作业10-8:商业智力 357

10.8实例研究 357

实例10-1:Brewbean s的特别查询系统 357

实例10-2:More Movies数据库 357

作业10-7:面向对象的编程 357

第11章性能优化 358

11.1 Brewbean s应用程序目前所面临的难题 359

11.2 重建数据库 359

11.3优化的概念和问题 359

11.3.1 识别代码中存在问题的区域 360

11.3.2处理和Optimizer 364

11.3.4解释计划和AUTOTRACE 366

11.3.3基于成本的Optimizer 366

11.3.5计时特性 369

11.4 SQL语句优化 370

11.4.1避免不必要的列选择 370

11.4.2基于成本与基于规则 371

11.4.3禁止索引 372

11.4.4串联的索引 374

11.4.5子查询 376

11.4.6联接 378

11.4.7优化器提示 378

11.5 PL/SQL语句优化 380

11.5.1程序单元迭代 380

11.5.2在更新时使用ROWID 382

11.5.3数据类型相同的变量比较 383

11.5.4按频率排列条件 384

11.5.5使用PLS_INTEGER数据类型 384

11.5.6固定存储程序单元 384

11.6本章总结 384

11.7复习题 385

11.8课外作业 387

作业11-1:查看语句的执行计划 387

作业11-2:在SQL* Plus中使用计时特性 388

作业11-3:比较解释计划 388

作业11-4:使用ROWID改进更新 389

作业11-8:集中优化努力 390

实例11-1:Brewbean s的专业开发 390

11.9实例研究 390

作业11-5:禁止索引 390

作业11-7:执行计划 390

作业11-6:Optimizer提示 390

实例11-2:More Movies的性能优化 391

附录A Brewbean s数据库的表 392

A.1 BB_SHOPPER 393

A.2 BB_BASKET 394

A.3 BB_BASKETITEM 395

A.4 BB_PRODUCT 396

A.5 BB_PRODUCTOPTION 397

A.7BB_PRODUCTOPTIONCATEGORY 398

A.6 BB_PRODUCTOPTIONDETAIL 398

A.8 BB_DEPARTMENT 399

A.9 BB_BASKETSTATUS 399

A.10 BB_TAX 400

A.1l BB_SHIPPING 400

附录B Procedure Builder 401

B.1重建数据库 402

B.2使用Procedure Builder创建过程 402

B.2.1运行Procedure Builder 402

B.2.2使用程序单元编辑器 404

B.2.3在Interpreter面板中测试过程 405

B.3.1使用断点 408

B.3使用Procedure Builder进行调试 408

B.3.2在屏幕上显示值 413

B.4附录总结 417

附录C TOAD(Tool for Oracle Application Developers) 418

C.1重建数据库 419

C.2使用TOAD创建过程 419

C.2.1运行TOAD 419

C.2.2使用过程编辑器 420

C.2.3使用TOAD测试过程 423

C.2.4使用TOAD进行调试 425

C.2.5创建断点 425

C.2.6显示变量 432

C.3附录总结 434

词汇表 435