目录
贺辞
序
前言
第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
· · · · · · (
收起)