Oracle8 PL/SQL程序设计

Oracle8 PL/SQL程序设计
作 者: Scott Urman 译友翻译组
出版社: 机械工业出版社
丛编项: Oracle技术系列丛书
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Oracle
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《Oracle8 PL/SQL程序设计》作者简介

内容简介

本书旨在帮助读者理解PL/SQL,并学会将这种Oracle用来操纵数据的独特语言而进行程序设计,其内容包括PL/SQL基础、PL/SQL语言语法、内置SQL函数、游标、过程和函数、配发器等,并特别包含了Oralce8中PL/SQL的新的内容,如对象类型和外部过程。对PL/SQL初学者而言,通过本书的学习,可以很快和有效地使用PL/SQL开发应用程序,而对于已熟悉PL/SQL基本要点的有经验的程序员,也可将本身作为一本查阅PL/SQL语法和高级特性的参考手册。本书还提供了一些常见问题和有关PL/SQL主题的解答,供读者在学习使用PL/SQL时参阅。

图书目录

目录

贺辞

前言

第1章 PL/SQL 简介

1.1为什么使用PL/SSQL

1.1.1客户服务器模式

1.1.2 标准

1.2PL/SQL的功能特性

1.2.1块结构

1.2.2 变量和类型

1.2.3循环结构

1.3本书使用的约定

1.3.1PL/SQL和Oracle版本

1.3.2 Oracle文档

1.3.3在线代码

1.4示例样表

1.5小结

第2章 PL/SQL基础

2.1PL/SQL块

2.2 词法单位

2.2.1标识符

2.2.2 分界符

2.2.3文字

2.2.4注释

2.3变量声明

2.3.1声明语法

2.3.2变量初始化

2.4 PL/SQL类型

2.4.1标量类型(ScalarType)

2.4.2 复合类型

2.4.3引用类型

2.4.4 LOB类型

2.4.5使用%TYPE

2.4.6 用户定义子类型

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

2.4.8变量作用域和可见性

2.5表达式和运算符

2.5.1赋值

2.5.2 表达式

2.6PL/SQL控制结构

2.6.1IF-IHEN-ELSE

2.6.2循环

2.6.3GOTO和标号

2.6.4pragma

2.7PL/SQL风格指南

2.7.1注释风格

2.7.2变量名风格

2.7.3大写风格

2.7.4缩进风格

2.7.5常见风格

2.8 小结

第3章 记录和表

3.1PL/SQL记录

3.1.1记录赋值

3.1.2 使用%ROWTYPE

3.2表

3.2.1表和数组

3.2.2 表属性

3.2.3使用PL/SQL表的指南

3.3小结

第4章 在PL/SQ L中使用SQL

4.1 SQL语句

4.2在PL/SQL中使用DML

4.2.1SELECT

4.2.2INSERT

4.2.3UPDATE

4.2.4DELETE

4.2.5WHERE子句

4.2.6表引用

4.2.7 数据库链接

4.2.8替代名(Synonym)

4.3伪列

4.3.1CURRVAL 和NEXTVAL

4.3.2 LEVEL

4.3.3ROWID

4.3.4ROWNUM

4.4 CRANT、REVOKE和权限

4.4.1 对象和系统权限

4.4.2GRANT和REVOKE

4.4.3 角色

4.5事务控制

4.5.1 COMMIT和ROLLBACK

4.5.2 保存点

4.5.3 事务和块

4.6小结

第5章 内置SQL 函数

5.1前言

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

5.2.1CHR

5.2.2 CONCAT

5.2.3INITCAP

5.2.4LOWER

5.2.5 LPAD

5.2.6LTRIM

5.2.7NLS_INITCA P

5.2.8NLS LOW ER

5.2.9 NLS_UPPER

5.2.10 REPLACE

5.2.11RPAD

5.2.12 RTRIM

5.2.13SOU NDEX

5.2.14 SUBSTR

5.2.15 SUBS TRB

5.2.16TRANSLATE

5.2.17UPPER

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

5.3.1ASCII

5.3.2INSIR

5.3.3INSTRB

5.3.4 LENGTH

5.3.5LENGTHB

5.3.6NLSSORT

5.4 数字函数

5.4.1ABS

5.4.2 ACOS

5.4.3ASIN

5.4.4 ATAN

5.4.5 ATAN2

5.4.6CEIL

5.4.7COS

5.4.8 COSH

5.4.9 EXP

5.4.10FLOOR

5.4.11LN

5.4.12LOG

5.4.13 MOD

5.4.14 POWER

5.4.15 ROUND

5.4.16SIGN

5.4.17 SIN

5.4.18SINH

5.4.19SQRT

5.4.20TAN

5.4.21TANH

5.4.22 TRUNC

5.5 日期函数

5.5.1ADD MONTHS

5.5.2LAST DAY

5.5 .3MONTHS BETW EEN

5.5.4NEW_TIME

5.5.5NEXT_DAY

5.5.6 ROUND

5.5.7SYSDATE

5.5.8TRUNC

5.5.9日期算术

5.6 转换函数

5.6.1CHARTOR OWID

5.6.2CONVERT

5.6.3HEXTORAW

5.6.4 RAW TOHEX

5.6.5ROWIDTOCHAR

5.6.6TO_CHAR(dates)

5.6.7TO _CHAR (labels )

5.6.8TO CHAR (numbers )

5.6.9 TO_DATE

5.6.10 TO _LABEL

5.6.11TO MUL TI BYTE

5.6.12 TO_NUMBER

5.6.13 TO _SINGLE_BYTE

5.7 分组函数

5.7.1AVG

5.7.2 COUNT

5.7.3 GLB

5.7.4LUB

5.7.5MAX

5.7.6MIN

5.7.7S1TDDEV

5.7.8SUM

5.7.9VARIANCE

5.8其他函数

5.8.1BFILENAME

5.8.2DECODE

5.8.3DUMP

5.8.4EMPTY_CLOB/ EMPTY BLOB

5.8.5GREATEST

5.7.6 GREATEST_LB

5.8.7 LEAST

5.8.8LEAST _UB

5.8.9NVL

5.8.10 UID

5.8.11USER

5.8.12 USERENV

5.8.13 VSIZE

5.9使用PL/SQL:将数字作为文本单字

进行打印

5.10小结

第6章 游标

6.1什么是游标?

6.1.1处理显式游标

6.1.2处理隐式游标

6.2游标提取循环

6.2.1简单循环

6.2.2WHILE循环

6.2.3游标式FOR循环

6.2.4NO DATA FOUND和

%NOTFOUND

6.2.5SELECTFORUPDATE游标

6.3游标变量

6.3.1声明游标变量

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

6.3.3打开查询的游标变量

6.3.4关闭游标变量

6.3.5游标变量示例1

6.3.6游标变量示例2

6.3.7使用游标变量的限制

6.4小结

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

7.1创建过程和函数

7.1.1创建过程

7.1.2创建函数

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

7.1.4删除过程和函数

7.2子程序位置

7.2.1内置子程序(stored Subprogram)

7.2.2本地子程序

7.3子程序依赖性

7.4权限和内置子程序

7.4.1EXECUTE权限

7.4.2内置子程序和角色

7.5小结

第8章 包

8.1包

8.1.1包规范(Package Speci fication)

8.1.2包主体(Package Body )

8.1.3包和作用域

8.1.4重载包装子程序

8.1.5包初始化

8.1.6包和相关性

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

8.2.1纯度级别

8.2.2RESTRICT REFERENCES

8.2.3缺省参数

8.3使用PL/SQL:PL/ SQL数据模式输

出程序

8.4 小结

第9章 触发器

9.1创建触发器

9.1.1触发器组件

9.1.2触发器和数据字典

9.1.3触发器点火次序

9.1.4在行级触发器中使用:old和:

9.1.5使用触发器谓词:INSERTING、

UPDATING 和DELET ING

9.2变化表

9.2.1变化表示例

9.2.2消除变化表错误

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

9.3.1实用程序的内容

9.3.2工作原理

9.4小结

第10章 错误处理

10.1什么是异常情态

10.1.1声明异常情态

10.1.2触发异常情态

10.1.3处理异常情态

10.1.4EXCEPTION_INITPragma

10.1.5使用RAI SEAPPLICAT ION

ERROR

10.2异常情态传播

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

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

10.2.3在异常处理部分引发的

异常情态S

10.3异常处理指南

10.3.1异常情态的作用域

10.3.2避免未处理的异常情态

10.3.3屏蔽错误发生的位置

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

10.5小结

第11章 对象

11.1背景介绍

11.1.1面向对象程序设计基础

11.1.2对象关系型数据库

11.2 对象类型

11.2.1定义对象类型

11.2.2声明和初始化对象

11.2.3方法

11.2.4更改和删除类型

11.2.5对象依赖性

11.3数据库中的对象

11.3.1对象位置

11.3.2在DML语句中使对象

11.3.3 MAP和ORDER方法

11.4 小结

第12章 集合(Collections)

12.1嵌套表

12.1.1声明嵌套表

12.1.2数据库中的嵌套表

12.1.3嵌套表和索引表

12.2Varrays

12.2.1声明Varray

12.2.2数据库中的Varray

12.2.3 Varray 和嵌套表

12.3集合方法

12.3.1EXISTS

12.3.2COUNT

12.3.3LIMIT

12.3.4FIRST和LAST

12.3.5 NEXT和PRIOR

12.3.6EXTEND

12.3.7TRIM

12.3.8DELETE

12.4小结

第13章 PL/SQL执行环境

13.1不同的PL/SQL引擎

13.2服务器端PL/SQL

13.2.1SQL Plus

13.2.2Oracle预编译器

13.2.3OCI

13.2.4SQL-Stat ion

13.3客户端PL/SQL

13.3.1为什么提供客户端引擎

13.3.2OracleForms

13.3 .3ProcedureBuilder

13.4 PL/ SQL Wra pper

13.4.1 运行Wra pper

13.4.2 输入和输出文件

13.4.3检查语法和语义

13.4.4 Wrapper使用指南

13.5小结

第14章 测试和调试

14.1问题诊断

14.1.1调试指南

14.1.2Debug 包

14.2插入测试表

14.3DBMS OUTP UT

14.3.1TheDBMS_OUTPUT

14.3.2 问题2

14.4PL/SQL调试器

14.5Proced ureBuilder

14.6SQL-Station

14.7 IProcedureBuilder 和SQL-Station之间

的比较

14.8程序设计方法

14.8.1模块化程序设计

14.8.2 自顶向下设计

14.8.3数据抽象

14.9小结

第15章 动态PL/SQL

15.1前言

15.1.1静态与动态SQL

15.1.2DBMS_SQL概述

15.2执行非查询DML和DDL语句

15.2.1打开游标

15.2.2分析语句

15.2.3联编输入变量

15.2.4执行语句

15.2.5关闭游标

15.2.6示例

15.2.7执行DDL语句

15.2.8执行查询

15.2.9分析语句

15.2.10 定义输出变量

15.2.11 提取行

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

15.2.13示例

15.3 执行 PL/ SQL

15.3.1分析语句

15.3.2检索输出变量的取值

15.3.3示例

15.3.4 使用out value_size

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

15.5对PL/ SQL 8.0 的DBMS_SQL 增强

15.5.1分析大型SQL串

15.5.2DBMS_SQL数组处理

15.5.3描述选择列表

15.6其他过程

15.6.1提取LONG型数据

15.6.2 其他的错误函数

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

FILE变量中

15.8权限和DBMS_SQL

15.8.1DBMS_SQL所需的权限

15.8.2 角色和DBMS_SQL

15.9在DBMS_SQL和其他动态方法之间

进行比较

15.9.1描述选择列表

15.9.2数组处理

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

15.9.4 接口差异

15.10提示和技巧

15.10.1重用游标

15.10.2权限

15.10.3DDL操作和挂起

15.11小结

第16章 会话间通信

16.1 DBMS PIPE

16.1.1发送消息

16.1.2接收消息

16.1.3创建和管理管道

16.1.4权限和安全性

16.1.5建立通信协议

16.1.6 示例

16.2DBMS ALERT

16.2.1发送警报

16.2.2接收警报

16.2.3其他过程

16.2.4警报和数据字典

16.3比较DBMS_PIPE和DBMSALERT

16.4小结

第17章 Oracle高级排队机制

17.1前言

17.1.1AdvancedQueuing的组件

17.1.2AdvancedQueuing的实现

17.2队列操作

17.2.1支持类型

17.2.2ENQUEUE

17.2.3DEQUEUE

17.3队列管理

17.3.1DBMS_AQADM子程序

17.3.2队列权限

17.3.3队列和数据字典

17.4综合示例

17.4.1创建队列和队列表

17.4.2简单的Enqueue和Dequeue

17.4.3清除队列

17.4.4按优先级执行enqueue和

dequeue

17.4.5按关联标识符或消息标识符执

行enqueue和dequeue

17.4.6 浏览队列

17.4.7使用异常情态队列

17.4.8 删除队列

17.5小结

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

18.1数据库作业

18.1.1后台进程

18.1.2运行作业

18.1.3失效作业(BrokenJobs)

18.1.4删除作业

18.1.5修改作业

18.1.6查看数据字典中的作业

18.1.7作业执行环境

18.2文件I/O

18.2.1安全性

18.2.2由UTL_FILE所引发的异常情态

18.2.3打开和关闭文件

18.2.4文件输出

18.2.5文件输入

18.2.6示例

18.3小结

第19章 Oracle的WebServer程序

19.1WebServer环境

19.1.1PL/SQL代理

19.1.2指定过程参数

19.2PL/SQLWeb工具箱

19.2.1HTP和HTF

19.2.2OWA_UTIL

19.2.3OWA_IMAGE

19.2.4OWA_COOKIE

19.3用于OWA过程的开发环境

19.3.1OWA_UTIL.SHOWPAGE

19.3.2SQL-StationCoder

19.4小结

第20章 外部过程

20.1什么是外部过程

20.1.1必需的步骤

20.1.2参数映射

20.1.3外部函数和包装过程

20.2数据库的回调

20.2.1服务例程

20.2.2在外部过程中执行SQL

20.3提示、指南和限制

20.3.1调试外部过程

20.3.2指南

20.3.3限制

20.4小结

第21章 大型对象

21.1什么是LOB

21.1.1LOB存储

21.1.2在DML中使用LOB

21.2操纵BFILE

21.2.1目录

21.2.2打开和关闭BFILE

21.2.3在DML中使用BFILE

21.3DBMS_LOB包

21.3.1DBMS_LOB例程

21.3.2由DBMS_LOB例程引发的异

常情态

21.3.3DBMS_LOB和OCI

21.4使用PL/SQL:将LONG型数据复

制到LOB变量中

21.5小结

第22章 性能和调整

22.1共享池

22.1.1Oracle实例的结构

22.1.2共享池的工作原理

22.1.3估计共享池的大小

22.1.4插入对象

22.2SQL语句调整

22.2.1确定执行方案

22.2.2使用方案

22.3网络问题

22.3.1使用客户端PL/SQL

22.3.2避免不必要的重新分析

22.3.3数组处理

22.4小结

附录A PL/SQL保留字

附录B 包使用指南

B.1创建包

B.2包说明

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

附录D 数据字典

D.1什么是数据字典

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

D.3其他数据字典

D.4 dbms_alert_info

D.5出ct_columns