《Oracle8 PL/SQL程序设计》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:(美)(S.尤曼)Scott Urman著;译友翻译组译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:1998
  • ISBN:7111063481
  • 页数:645 页
图书介绍:

前言 1

第1章 PL/SQL简介 1

1.1 为什么使用PL/SQL 1

贺辞 1

1.1.1 客户-服务器模式 2

1.1.2 标准 3

1.2 PL/SQL的功能特性 3

1.2.1 块结构 3

1.2.2 变量和类型 5

1.2.3 循环结构 6

1.3 本书使用的约定 7

1.3.1 PL/SQL和Oracle版本 7

1.3.3 在线代码 8

1.3.2 Oracle文档 8

1.4 示例样表 9

1.5 小结 15

第2章 PL/SQL基础 16

2.1 PL/SQL块 16

2.2 词法单位 20

2.2.1 标识符 21

2.2.2 分界符 23

2.2.3 文字 24

2.2.4 注释 25

2.3 变量声明 26

2.3.1 声明语法 27

2.4 PL/SQL类型 28

2.3.2 变量初始化 28

2.4.1 标量类型(Scalar Type) 29

2.4.2 复合类型 33

2.4.3 引用类型 33

2.4.4 LOB类型 34

2.4.5 使用%TYPE 34

2.4.6 用户定义子类型 35

2.4.7 在数据类型之间进行转换 35

2.4.8 变量作用域和可见性 37

2.5 表达式和运算符 39

2.5.1 赋值 39

2.5.2 表达式 39

2.6.1 IF-TIIEN-ELSE 42

2.6 PL/SQL控制结构 42

2.6.2 循环 45

2.6.3 GOTO和标号 49

2.6.4 pragma 51

2.7 PL/SQL风格指南 52

2.7.1 注释风格 52

2.7.2 变量名风格 53

2.7.3 大写风格 53

2.7.4 缩进风格 54

2.7.5 常见风格 54

2.8 小结 54

第3章 记录和表 55

3.1 PL/SQL记录 55

3.1.1 记录赋值 56

21.3.2 由DBMS LOB例程引发的异常情态 57

3.1.2 使用%ROWTYPE 57

3.2 表 58

3.2.1 表和数组 59

3.2.2 表属性 61

3.2.3 使用PL/SQL表的指南 64

3.3 小结 64

第4章 在PL/SQL中使用SQL 65

4.1 SQL语句 65

4.2 在PL/SQL中使用DML 67

4.2.1 SELECT 68

4.2.2 INSERT 70

4.2.4 DELETE 71

4.2.3 UPDATE 71

4.2.5 WHERE子句 72

4.2.6 表引用 75

4.2.7 数据库链接 75

4.2.8 替代名(Synonym) 76

4.3 伪列 76

4.3.3 ROWID 77

4.3.1 CURRVAL和NEXTVAL 77

4.3.2 LEVEL 77

4.3.4 ROWNUM 78

4.4 GRANT、REVOKE和权限 78

4.4.1 对象和系统权限 78

4.4.2 GRANT 和REVOKE 79

4.4.3 角色 80

4.5 事务控制 81

4.5.1 COMMIT和ROLLBACK 82

4.5.2 保存点 83

4.5.3 事务和块 84

4.6 小结 84

第5章 内置SQL函数 85

5.1 前言 85

5.2 字符函数——返回字符值 85

5.2.3 INITCAP 86

5.2.2 CONCAT 86

5.2.1 CHR 86

5.2.4 LOWER 87

5.2.5 LPAD 87

5.2.6 LTRIM 88

5.2.7 NLS_INITCAP 89

5.2.8 NLS_LOWER 89

5.2.9 NLS_UPPER 90

5.2.10 REPLACE 90

5.2.11 RPAD 91

5.2.12 RTRIM 91

5.2.13 SOUNDEX 92

5.2.14 SUBSTR 93

5.2.15 SUBSTRB 93

5.2.16 TRANSLATE 94

5.2.17 UPPER 94

5.3.2 INSTR 95

5.3.1 ASCII 95

5.3 字符函数——返回数字值 95

5.3.3 INSTRB 96

5.3.4 LENGTH 97

5.3.5 LENGTHB 97

5.3.6 NLSSORT 97

5.4 数字函数 98

5.4.1 ABS 98

5.4.2 ACOS 98

5.4.5 ATAN2 99

5.4.3 ASIN 99

5.4.4 ATAN 99

5.4.6 CEIL 100

5.4.7 COS 100

5.4.8 COSH 101

5.4.9 EXP 101

5.4.10 FLOOR 101

5.4.13 MOD 102

5.4.11 LN 102

5.4.12 LOG 102

5.4.16 SIGN 103

5.4.14 POWER 103

5.4.15 ROUND 103

5.4.18 SINH 104

5.4.17 SIN 104

5.4.19 SQRT 105

5.4.20 TAN 105

5.4.21 TANH 105

5.4.22 TRUNC 106

5.5 日期函数 106

5.5.1 ADD_MONTHS 106

5.5.2 LAST_DAY 107

5.5.3 MONTHS_BETWEEN 107

5.5.4 NEW_TIME 107

5.5.5 NEXT_DAY 108

5.5.6 ROUND 109

5.5.7 SYSDATE 109

5.5.8 TRUNC 110

5.5.9 日期算术 111

5.6 转换函数 111

5.6.1 CHARTOROWID 111

5.6.2 CONVERT 112

5.6.5 ROWIDTOCHAR 113

5.6.3 HEXTORAW 113

5.6.4 RAWIOHEX 113

5.6.6 TO_CHAR(dates) 114

5.6.8 TO_CHAR(mumbers) 116

5.6.7 TO_CHAR(labels) 116

5.6.9 TO_DATE 118

5.6.10 TO_LABEL 118

5.6.11 TO_MULTI_BYTE 118

5.6.12 TO_NUMBER 119

5.6.13 TO_SINGLE_BYTE 119

5.7 分组函数 119

5.7.1 AVG 120

5.7.2 COUNT 120

5.7.3 GLB 121

5.7.4 LUB 121

5.7.5 MAX 121

5.7.8 SUM 122

5.7.6 MIN 122

5.7.7 STDDEV 122

5.8.1 BFILENAME 123

5.7.9 VARIANCE 123

5.8 其他函数 123

5.8.2 DECODE 124

5.8.3 DUMP 124

5.8.4 EMPTY CLOB/EMPTY_BLOB 126

5.8.5 GREATEST 126

5.8.6 GREATEST_LB 127

5.8.8 LEAST_UB 127

5.8.9 NVL 127

5.8.7 LEAST 127

5.8.10 UID 128

5.8.11 USER 128

5.8.12 USERENV 129

5.8.13 VSIZE 130

5.9 使用PL/SQL:将数字作为文本单字进行打印 130

5.10 小结 138

6.1 什么是游标? 139

第6章 游标 139

6.1.1 处理显式游标 140

6.1.2 处理隐式游标 146

6.2 游标提取循环 148

6.2.1 简单循环 148

6.2.2 WHILE循环 150

6.2.3 游标式FOR循环 151

6.2.4 NO_DATA_FOUND和%NOTFOUND 152

6.2.5 SELECT FOR UPDATE游标 152

6.3 游标变量 156

6.3.1 声明游标变量 157

6.3.2 为游标变量分配存储空间 158

6.3.5 游标变量示例1 159

6.3.3 打开查询的游标变量 159

6.3.4 关闭游标变量 159

6.3.6 游标变量示例2 162

6.3.7 使用游标变量的限制 163

6.4 小结 164

第7章 子程序:过程和函数 165

7.1 创建过程和函数 165

7.1.1 创建过程 166

7.1.2 创建函数 175

7.1.3 在子程序中进行异常处理 178

7.1.4 删除过程和函数 180

7.2 子程序位置 180

72.1 内置子程序(StoredSubprogram) 180

7.2.2 本地子程序 182

7.3 子程序依赖性 185

7.4 权限和内置子程序 188

7.4.1 EXECUTE权限 189

7.4.2 内置子程序和角色 190

7.5 小结 192

第8章 包 193

8.1 包 193

8.1.1 包规范(Package Specification) 193

8.1.2 包主体(Package Body) 194

8.1.3 包和作用域 196

8.1.4 重载包装子程序 197

8.1.5 包初始化 199

8.1.6 包和相关性 201

8.2 在SQL语句中使用内置函数 203

8.2.1 纯度级别 204

8.2.2 RESTRICT_REFERENCES 206

8.2.3 缺省参数 208

8.3 使用PL/SQL:PL/SQL数据模式输出程序 208

8.4 小结 217

第9章 触发器 218

9.1 创建触发器 218

9.1.1 触发器组件 219

9.1.2 触发器和数据字典 222

9.1.3 触发器点火次序 223

91.4 在行级触发器中使用:old和:new 225

9.1.5 使用触发器谓词:INSERTING、UPDATING和DELETING 227

9.2 变化表 229

9.2.1 变化表示例 230

9.2.2 消除变化表错误 231

9.3 使用PL/SQL:实现级联更新 234

9.3.1 实用程序的内容 235

9.3.2 工作原理 238

9.4 小结 242

10.1 什么是异常情态 243

第10章 错误处理 243

10.1.1 声明异常情态 244

10.1.2 触发异常情态 247

10.1.3 处理异常情态 248

10.1.4 EXCEPTION INIT Pragma 253

10.1.5 使用RAISE_APPLICATION ERROR 254

10.2 异常情态传播 256

10.2.1 在执行部分引发的异常情态 256

10.2.2 在声明部分引发的异常情态 259

10.2.3 在异常处理部分引发的异常情态S 260

10.3 异常处理指南 262

10.3.1 异常情态的作用域 262

10.3.2 避免示处理的异常情态 263

10.3.3 屏蔽错误发生的位置 263

10.4 使用PL/SQL:常用错误处理模块 265

10.5 小结 273

第11章 对象 274

11.1 背景介绍 274

11.1.1 面向对象程序设计基础 274

11.1.2 对象关系型数据库 275

11.2 对象类型 276

11.2.1 定义对象类型 276

11.2.2 声明和初始化对象 278

11.2.3 方法 280

11.2.4 更改和删除类型 285

11.2.5 对象依赖性 287

11.3 数据库中的对象 288

11.3.1 对象位置 288

11.3.2 在DML语句中使对象 291

11.3.3 MAP和ORDER方法 295

11.4 小结 298

12.1 嵌套表 299

第12章 集合(Collections) 299

12.1.1 声明嵌套表 299

12.1.2 数据库中的嵌套表 302

12.1.3 嵌套表和索引表 305

12.2 Varrays 306

12.2.1 声明Varray 306

12.2.2 数据库中的Varray 307

12.2.3 Varray和嵌套表 309

12.3 集合方法 310

12.3.1 EXISTS 310

12.3.2 COUNT 311

12.3.3 LIMIT 312

12.3.4 FIRST和LAST 312

12.3.5 NEXT和PRILOR 312

12.3.6 EXTEND 313

12.3.7 TRIM 315

12.3.8 DELETE 317

12.4 小结 319

第13章 PL/SQL执行环境 320

13.1 不同的PL/SQL引擎 320

13.2 服务器端PL/SQL 323

13.2.1 SQL*Plus 323

13.2.2 Oracle预编译器 328

13.2.3 OCI 332

13.2.4 SQL-Station 335

13.3 客户端PL/SQL 338

13.3.1 为什么提供客户端引擎 339

13.3.2 Orade Forms 340

13.3.3 Procedure Builder 341

13.4 PL/SQL Wrapper 343

13.4.1 运行Wrapper 343

13.4.3 检查语法和语义 344

13.4.2 输入和输出文件 344

13.4.4 Wrapper使用指南 345

13.5 小结 345

第14章 测试和调试 346

14.1 问题诊断 346

14.1.1 调试指南 346

14.2 插入测试表 347

14.3 DBMS_OUTPUT 355

14.3.1 The DBMS_OUTPUT 356

14.3.2 问题2 359

14.4 PL/SQL调试器 365

14.5 Procedure Builder 365

14.6 SQL ⊿tation 369

14.7 Procedure Builder和SQL-Station之间的比较 374

14.8 程序设计方法 375

14.8.1 模块化程序设计 375

14.8.2 自顶向下设计 376

14.8.3 数据抽象 376

14.9 小结 377

第15章 动态PL/SQL 378

15.1 前言 378

15.1.1 静态与动态SQL 378

15.1.2 DBMS_SQL概述 379

15.2 执行非查询DML和DDL语句 382

15.2.1 打开游标 382

15.2.2 分析语句 383

15.2.3 联编输入变量 383

15.2.4 执行语句 385

15.2.5 关闭游标 386

15.2.6 示例 386

15.2.7 执行DDL语句 387

15.2.8 执行查询 388

15.2.9 分析语句 389

15.2.10 定义输出变量 389

15.2.11 提取行 391

15.2.12 将结果返回给PL/SQL变量 392

15.2.13 示例 394

15.3 执行PL/SQL 396

15.3.1 分析语句 396

15.3.2 检索输出变量的取值 397

15.3.3 示例 398

15.3.4 使用out_value_size 400

15.4 使用PL/SQL:执行任意内置过程 401

15.5.1 分析大型SQL串 408

15.5 对PL/SQL8.0的DBMS_SQL增强 408

15.5.2 DBMS_SQL数组处理 410

15.5.3 描述选择列表 414

15.6 其他过程 417

15.6.1 提取LONG型数据 417

15.6.2 其他的错误函数 418

15.7 使用PL/SQL:将LONG变量写入FILE变量中 419

15.8 权限和DBMS_SQL 421

15.8.1 DBMS_SQL所需的权限 421

15.8.2 角色和DBMS_SQL 422

15.9 在DBMS_SQL和其他动态方法之间进行比较 422

15.9.4 接口差异 423

15.10 提示和技巧 423

15.9.1 描述选择列表 423

15.9.3 关于LONG型数据的单步操作 423

15.9.2 数组处理 423

15.10.2 权限 424

15.10.3 DDL操作和挂起 424

15.11 小结 424

15.10.1 重用游标 424

第16章 会话间通信 425

16.1 DBMS_PIPE 425

16.1.1 发送信息 429

16.1.2 接收消息 430

16.1.3 创建和管理管道 432

16.1.4 权限和安全性 433

16.1.5 建立通信协议 434

16.1.6 示例 435

16.2 DBMS_ALERT 436

16.2.1 发送警报 442

16.2.2 接收警报 442

16.2.3 其他过程 444

16.2.4 警报和数据字典 444

16.3 比较DBMS-919E和DBMS-A1ERT 446

16.4 小结 447

第17章 Oracle高级排队机制 448

17.1 前言 448

17.1.1 Advanced Queuing的组件 448

17.1.2 Advanced Queuing的实现 450

17.2 队列操作 451

17.2.1 支持类型 451

17.2.2 ENQUEUE 455

17.2.3 DEQUEUE 455

17.3 队列管理 456

17.3.1 DBMS_AQADM子程序 456

17.3.2 队列权限 462

17.3.3 队列和数据字典 462

17.4.1 创建队列和队列表 464

17.4 综合示例 464

17.4.2 简单的Enqueue和Dequeue 466

17.4.3 清除队列 468

17.4.4 按优先级执行enqueue和dequeue 469

17.4.5 按关联标识符或消息标识符执行enqueue和dequeue 470

17.4.6 浏览队列 473

17.4.7 使用异常情态队列 475

17.4.8 删除队列 478

17.5 小结 478

第18章 数据库作业和文件I/O 479

18.1 数据库作业 479

18.1.1 后台进程 479

18.1.2 运行作业 480

18.1.3 失效作业(Broken Jobs) 483

18.1.7 作业执行环境 484

18.1.4 删除作业 484

18.1.5 修改作业 484

18.1.6 查看数据字典中的作业 484

18.2 文件I/O 485

18.2.1 安全性 485

18.2.2 由UTL FILE所引发的异常情态 486

18.2.3 打开和关闭文件 486

18.2.4 文件输出 488

18.2.5 文件输入 491

18.2.6 示例 491

18.3 小结 499

第19章 Oracle 的WebServer程序 500

19.1 WebServer环境 500

19.1.1 PL/SQL代理 501

19.1.2 指定过程参数 502

19.2 PL/SQL Web工具箱 504

19.2.1 HTP和HIF 505

19.2.2 OWA UTIL 517

19.2.3 OWA_IMAGE 525

19.2.4 OWA_COOKIE 527

19.3 用于OWA过程的开发环境 530

19.3.1 OWA_UTIL.SHOWPAGE 530

19.3.2 SQL-Station Coder 531

19.4 小结 532

第20章 外部过程 533

20.1 什么是外部过程 533

20.1.1 必需的步骤 534

20.1.2 参数映射 540

20.1.3 外部函数和包装过程 546

20.2.1 服务例程 548

20.2 数据库的回调 548

20.3 提示、指南和限制 552

20.3.1 调试外部过程 552

20.2.2 在外部过程中执行SQL 552

20.3.2 批南 554

20.3.3 限制 555

20.4 小结 555

第21章 大型对象 556

21.1 什么是LOB 556

21.1.1 LOB存储 557

21.1.2 在DML中使用LOB 558

21.2 操纵BFILE 559

21.2.1 目录 560

21.2.2 打开和关闭BFILE 561

21.2.3 在DML中使用FBILE 561

21.3 DBMS_LOB包 563

21.3.1 DBMS LOB例程 563

21.3.3 DBMS.LOB和OCI 577

21.4 使用PL/SQL:将LONG型数据复制到LOB变量中 579

21.5 小结 581

第22章 性能和调整 582

22.1 共享池 582

22.1.1 Oracle实例的结构 582

22.1.2 共享池的工作原理 585

22.1.3 估计共享池的大小 586

22.1.4 插入对象 588

22.2 SQL语句调整 589

22.2.1 确定执行方案 589

22.3 网络问题 595

22.3.1 使用客户端PL/SQL 595

22.2.2 使用方案 595

22.3.2 避免不必要的重新分析 596

22.3.3 数组处理 596

22.4 小结 596

附录A PL/SQL保留字 597

附录B 包使用指南 600

B.1 创建包 600

B.2 包说明 601

附录C PL/SQL特性的字汇表 615

附录D 数据字典 629

D.1 什么是数据字典 629

D.2 All/User/DBA字典视图 630

D.3 其他数据字典 644

D.4 dbms alert_info 644

D.5 dict_columns 645