譯者序
前言
第一部分 概述及開發(fā)環(huán)境
第1章 PL/SQL概述
1.1 為什么使用PL/SQL
1.1.1 PL/SQL和網絡流量
1.1.2 標準
1.2 PL/SQL的功能特性
1.2.1 語句塊結構
1.2.2 錯誤處理
1.2.3 變量和類型
1.2.4 條件語句
1.2.5 循環(huán)結構
1.2.6 游標
1.2.7 過程和函數
1.2.8 包
1.2.9 集合
1.3 本書使用的約定
1.3.1 PL/SQL和Oracle版本
1.3.2 Oracle文檔
1.3.3 光盤內容
1.4 范例樣表
1.5 小結
第2章 開發(fā)及運行環(huán)境
2.1 應用程序模型和PL/SQL
2.1.1 兩層模型
2.1.2 三層模型
2.1.3 連接服務器
2.2 PL/SQL開發(fā)工具
2.2.1 SQL*Plus
2.2.2 Rapid SQL
2.2.3 DBPartner Debugger
2.2.4 SQL Navigator
2.2.5 TOAD
2.2.6 SQL-programmer
2.2.7 PL/SQL Developer
2.2.8 開發(fā)工具小結
2.3 小結
第二部分 PL/SQL基本特性
第3章 PL/SQL基礎
3.1 PL/SQL語句塊
3.2 詞法單元
3.2.1 標識符
3.2.2 分界符
3.2.3 文字
3.2.4 注釋
3.3 變量聲明
3.3.1 聲明語法
3.3.2 變量初始化
3.4 PL/SQL類型
3.4.1 標量類型
3.4.2 復合類型
3.4.3 引用類型
3.4.4 LOB類型
3.4.5 對象類型
3.4.6 使用%TYPE
3.4.7 用戶定義子類型
3.4.8 數據類型之間的轉換
3.4.9 變量作用域和可見性
3.5 表達式和運算符
3.5.1 賦值
3.5.2 表達式
3.6 PL/SQL控制結構
3.6.1 IF-THEN-ELSE
3.6.2 CASE
3.6.3 循環(huán)
3.6.4 GOTO和標號
3.6.5 編譯指示
3.7 PL/SQL記錄
3.7.1 記錄賦值
3.7.2 使用%ROWTYPE
3.8 PL/SQL風格指南
3.8.1 注釋風格
3.8.2 變量名風格
3.8.3 大寫風格
3.8.4 縮進風格
3.8.5 常見風格
3.9 小結
第4章 PL/SQL中的SQL
4.1 SQL語句
4.1.1 在PL/SQL中使用SQL
4.1.2 使用動態(tài)SQL
4.2 在PL/SQL中使用DML
4.2.1 SELECT
4.2.2 INSERT
4.2.3 UPDATE
4.2.4 DELETE
4.2.5 WHERE子句
4.2.6 批綁定
4.2.7 RETURNING子句
4.2.8 表引用
4.2.9 數據庫鏈接
4.2.10 同義詞
4.3 偽列
4.3.1 CURRVAL和NEXTVAL
4.3.2 LEVEL
4.3.3 ROWID
4.3.4 ROWNUM
4.4 GRANT、REVOKE和權限
4.4.1 對象和系統(tǒng)權限
4.4.2 GRANT和REVOKE
4.4.3 角色
4.5 事務控制
4.5.1 COMMIT和ROLLBACK
4.5.2 保存點
4.5.3 事務和語句塊
4.5.4 自治事務
4.6 小結
第5章 內置SQL函數
5.1 概述
5.2 返回字符值的字符函數
5.2.1 SUBSTR、SUBSTRB、SUBSTRC、SUBSTR2和SUBSTR4
5.2.2 SOUNDEX
5.3 返回數字值的字符函數
5.3.1 INSTR、INSTRB、INSTRC、INSTR2和INSTR4
5.3.2 LENGTH、LENGTHB、LENGTHC、LENGTH2和LENGTH4
5.4 NLS函數
5.5 數字函數
5.6 日期和時間函數
5.7 轉換函數
5.7.1 TO_CHAR(日期和日期時間)
5.7.2 TO_CHAR(數字)
5.7.3 TO_DATE
5.7.4 TO_NUMBER
5.7.5 TO_TIMESTAMP和TO_TIMESTAMP_TZ
5.8 聚集和分析函數
5.9 其他函數
5.9.1 DUMP
5.9.2 USERENV
5.10 小結
第6章 游標
6.1 什么是游標
6.1.1 處理顯式游標
6.1.2 處理隱式游標
6.2 游標檢索循環(huán)
6.2.1 簡單循環(huán)
6.2.2 WHILE循環(huán)
6.2.3 游標FOR循環(huán)
6.2.4 NO_DATA_FOUND與%NOFTOUND
6.2.5 SELECT FOR UPDATE游標
6.3 游標變量
6.3.1 聲明游標變量
6.3.2 為游標變量分配存儲空間
6.3.3 為查詢打開游標變量
6.3.4 關閉游標變量
6.3.5 游標變量范例一
6.3.6 游標變量范例二
6.3.7 使用游標變量的限制
6.4 小結
第7章 錯誤處理
7.1 什么是異常
7.1.1 聲明異常
7.1.2 拋出異常
7.1.3 處理異常
7.1.4 EXCEPTION_INIT編譯指示
7.1.5 使用RAISE_APPLICATION_ERROR
7.2 異常傳播
7.2.1 可執(zhí)行部分產生的異常
7.2.2 在聲明部分出現的異常
7.2.3 在異常部分產生的異常
7.3 異常準則
7.3.1 異常的作用域
7.3.2 避免未處理異常
7.3.3 指定錯誤位置
7.4 通用錯誤處理器
7.5 小結
第8章 集合
8.1 聲明和使用集合類型
8.1.1 index-by表
8.1.2 嵌套表
8.1.3 可變數組
8.1.4 多層集合
8.1.5 集合類型之間的比較
8.2 數據庫中的集合
8.2.1 存儲集合的隱含式
8.2.2 操作整個集合
8.2.3 操作單個集合元素
8.3 集合方法
8.3.1 EXISTS
8.3.2 COUNT
8.3.3 LIMIT
8.3.4 FIRST和LAST
8.3.5 NEXT和PRIOR
8.3.6 EXTEND
8.3.7 TRIM
8.3.8 DELETE
8.4 小結
第三部分 更多PL/SQL特性
第9章 創(chuàng)建過程、函數和包
9.1 過程與函數
9.1.1 創(chuàng)建子程序
9.1.2 子程序參數
9.1.3 CALL語句
9.1.4 過程與函數
9.2 包
9.2.1 包的說明
9.2.2 包體
9.2.3 包和范圍
9.2.4 重載封裝子程序
9.2.5 包的初始化
9.3 小結
第10章 使用過程、函數和包
10.1 子程序位置
10.1.1 存儲子程序和數據字典
10.1.2 局部子程序
10.1.3 存儲子程序與局部子程序
10.2 存儲子程序和包的考慮事項
10.2.1 子程序依賴性
10.2.2 包運行時狀態(tài)
10.2.3 特權和存儲子程序
10.3 在SQL語句中使用存儲函數
10.3.1 純度等級
10.3.2 缺省參數
10.3.3 在Oracle8i中從SQL調用存儲函數
10.4 在共享池中的鎖定
10.4.1 KEEP
10.4.2 UNKEEP
10.4.3 SIZES
10.4.4 ABORTED_REQUEST_THRESHOLD
10.5 小結
第11章 數據庫觸發(fā)器
11.1 觸發(fā)器的類型
11.2 創(chuàng)建觸發(fā)器
11.2.1 創(chuàng)建DML觸發(fā)器
11.2.2 創(chuàng)建Instead-Of觸發(fā)器
11.2.3 創(chuàng)建系統(tǒng)觸發(fā)器
11.2.4 其他觸發(fā)器問題
11.2.5 觸發(fā)器和數據字典
11.3 變異表
11.3.1 變異表的例子
11.3.2 變異表錯誤的解決
11.4 小結
第12章 高級特性
12.1 語言特性
12.1.1 外部例程
12.1.2 本地動態(tài)SQL
12.1.3 成批綁定
12.1.4 對象類型
12.1.5 大對象
12.1.6 管道化表函數
12.2 高級包
12.2.1 DBMS_SQL
12.2.2 DBMS_PIPE
12.2.3 DBMS_ALERT
12.2.4 UTL_FILE
12.2.5 UTL_TCP
12.2.6 UTL_SMTP
12.2.7 UTL_HTTP
12.2.8 UTL_INADDR
12.2.9 DBMS_JOB
12.2.10 DBMS_LOB
12.3 小結
附錄
附錄A 包指南
附錄B PL/SQL保留字
附錄C 數據字典