Oracle PLSQL程序設計(第6版)(上下冊)


Oracle PLSQL程序設計(第6版)(上下冊)

O'Reilly Media,Inc.介紹

本書的目標

本書約定

第1部分 用PL/SQL編程

1 PL/SQL介紹

1.1 什么是PL/SQL
1.2 PL/SQL的起源
1.2.1 早期的PL/SQL
1.2.2 提高應用的可移植性
1.2.3 提高執行權限控制和交易完整性
1.2.4 低調開始,持續改進
1.3 這就是PL/SQL
1.3.1 與SQL的集成
1.3.2 控制和條件邏輯
1.3.3 出錯處理
1.4 關於PL/SQL版本
1.4.1 Oracle數據庫12c中PL/SQL的新特性
1.5 可供PL/SQL開發者使用的資源
1.5.1 O’Reilly的PL/SQL系列圖書
1.5.2 網絡上的PL/SQL資源
1.6 一些建議
1.6.1 別急,慢慢來
1.6.2 不要畏懼尋求幫助
1.6.3 采用有創造性的甚至激進的方法

2 創建和運行PL/SQL代碼

2.1 在數據庫中導航
2.2 創建和編輯源代碼
2.3 SQL*Plus
2.3.1 啟動SQL*Plus
2.3.2 運行SQL語句
2.3.3 運行PL/SQL程序
2.3.4 運行一個腳本
2.3.5 什么是“當前目錄”
2.3.6 其他SQL*Plus任務
2.3.7 SQL*Plus中的異常處理
2.3.8 為什么SQL*Plus讓我們又愛又恨
2.4 執行基本的PL/SQL任務
2.4.1 創建存儲程序
2.4.2 執行存儲的程序
2.4.3 顯示存儲程序
2.4.4 存儲程序的授權和別名
2.4.5 刪除一個存儲程序
2.4.6 隱藏存儲程序的源代碼
2.5 編輯PL/SQL的環境
2.6 從其他語言中調用PL/SQL
2.6.1 C語言,使用Oracle預編輯器(Pro*C)
2.6.2 Java:使用JDBC
2.6.3 Perl:使用Perl DBI和DBD::Oracle
2.6.4 PHP:使用Oracle擴展
2.6.5 PL/SQL Server Pages
2.6.6 其他

3 語言基礎

3.1 PL/SQL塊結構
3.1.1 匿名塊
3.1.2 命名塊
3.1.3 嵌套塊
3.1.4 作用范圍
3.1.5 規范SQL語句中對變量和列的引用
3.1.6 可見性
3.2 PL/SQL字符集
3.3 標識符
3.3.1 保留字
3.3.2 空白和關鍵字
3.4 直接量
3.4.1 NULL
3.4.2 在一個直接量字符串中嵌入單引號
3.4.3 數字直接量
3.4.4 布爾直接量
3.5 分號分隔符
3.6 注釋
3.6.1 單行注釋語法
3.6.2 多行注釋語法
3.7 PRAGMA關鍵字
3.8 標簽

第2部分 PL/SQL程序結構

4 條件與順序控制

4.1 IF語句
4.1.1 IF-THEN組合
4.1.2 IF-THEN-ELSE的組合
4.1.3 IF-THEN-ELSIF組合
4.1.4 避免IF語法陷阱
4.1.5 嵌套的IF語句
4.1.6 短路估算
4.2 CASE語句和表達式
4.2.1 簡單的CASE語句
4.2.2 搜索CASE語句
4.2.3 嵌套CASE語句
4.2.4 CASE表達式
4.3 GOTO語句
4.4 NULL語句
4.4.1 提高程序的可讀性
4.4.2 在標簽后使用NULL

5 循環迭代處理

5.1 循環的基礎知識
5.1.1 不同循環的示例
5.1.2 PL/SQL循環的結構
5.2 簡單循環
5.2.1 終止簡單循環:EXIT和EXIT WHEN
5.2.2 模仿REPEAT UNTIL循環
5.2.3 故意的無限循環
5.3 WHILE循環
5.4 數值型FOR循環
5.4.1 數值型FOR循環的規則
5.4.2 數值型FOR循環的示例
5.4.3 處理特殊增量
5.5 游標FOR循環
5.5.1 游標FOR循環的示例
5.6 循環標簽
5.7 CONTINUE語句
5.8 迭代處理技巧
5.8.1 為循環索引使用可理解的名稱
5.8.2 以正確的方式說再見
5.8.3 獲取FOR循環執行的信息
5.8.4 循環SQL語句

6 異常處理

6.1 異常處理概念和術語
6.2 定義異常
6.2.1 聲明命名異常
6.2.2 關聯異常名稱與錯誤代碼
6.2.3 命名的系統異常
6.2.4 異常作用范圍
6.3 引發異常
6.3.1 RAISE語句
6.3.2 使用RAISE_APPLICATION_ERROR
6.4 處理異常
6.4.1 內置錯誤函數
6.4.2 單一處理句柄中結合多個異常
6.4.3 未處理異常
6.4.4 未處理異常的傳播
6.4.5 繼續過去的異常
6.4.6 編寫WHEN OTHERS處理代碼
6.5 構建有效的錯誤管理架構
6.5.1 確定我們的異常管理策略
6.5.2 對不同類型異常進行標准化處理
6.5.3 程序特定錯誤代碼的組織使用
6.5.4 使用標准的錯誤管理程序
6.5.5 使用自己的異常“對象”
6.5.6 創建常見錯誤處理的標准模板
6.6 充分利用PL/SQL錯誤管理

第3部分 PL/SQL程序數據

7 使用程序數據

7.1 程序數據的命名
7.2 PL/SQL數據類型概述
7.2.1 字符數據
7.2.2 數字
7.2.3 日期、時間戳和時間間隔
7.2.4 布爾類型
7.2.5 二進制數據類型
7.2.6 ROWID
7.2.7 REF CURSOR
7.2.8 Internet數據類型
7.2.9 “Any”數據類型
7.2.10 用戶自定義數據類型
7.3 程序數據的聲明
7.3.1 聲明一個變量
7.3.2 聲明常量
7.3.3 NOT NULL語句
7.3.4 錨定聲明
7.3.5 游標和表的錨
7.3.6 使用錨定聲明的益處
7.3.7 NOT NULL數據類型的錨
7.4 程序員定義的子類型
7.5 數據類型轉換
7.5.1 隱式類型轉換
7.5.2 顯式類型轉換

8 字符串

8.1 字符串類型
8.1.1 VARCHAR2數據類型
8.1.2 CHAR數據類型
8.1.3 String子類型
8.2 使用字符串
8.2.1 指定字符串常量
8.2.2 不可打印字符
8.2.3 拼接字符串
8.2.4 處理大小寫
8.2.5 傳統的檢索、提取和替換
8.2.6 填充
8.2.7 剪裁
8.2.8 正則表達式的檢索、提取和替換
8.2.9 使用空字符串
8.2.10 混用CHAR和VARCHAR2
8.3 字符串函數快速參考

9 數字

9.1 數值型數字類型
9.1.1 NUMBER類型
9.1.2 PLS_INTEGER類型
9.1.3 BINARY_INTEGER類型
9.1.4 SIMPLE_INTEGER類型
9.1.5 BINARY_FLOAT和BINARY_DOUBLE類型
9.1.6 SIMPLE_FLOAT和SIMPLE_DOUBLE類型
9.1.7 數字子類型
9.2 數字轉換
9.2.1 TO_NUMBER函數
9.2.2 TO_CHAR函數
9.2.3 CAST函數
9.2.4 隱式轉換
9.3 數字運算符
9.4 數字函數
9.4.1 四舍五入和截斷函數
9.4.2 三角函數
9.4.3 數字函數的快速參考

10 日期和時間戳

10.1 Datetime數據類型
10.1.1 聲明日期時間變量
10.1.2 選擇日期時間數據類型
10.2 獲取當前日期和時間
10.3 INTERVAL數據類型
10.3.1 聲明INTERVAL變量
10.3.2 什么時候使用INTERVAL
10.4 日期時間轉換
10.4.1 從字符串到日期時間
10.4.2 從日期時間到字符串
10.4.3 使用時區
10.4.4 精確匹配需要格式掩碼
10.4.5 讓精確匹配更輕松
10.4.6 解釋滑動窗口中兩位數字的年份
10.4.7 把時區轉換成字符串
10.4.8 用填充模式把輸出補齊
10.5 日期和時間戳直接量
10.6 時間間隔的轉換
10.6.1 從數字到時間間隔的轉換
10.6.2 把字符串轉換成間隔
10.6.3 時間間隔的格式化顯示
10.7 時間間隔直接量
10.8 CAST和EXTRACT
10.8.1 CAST函數
10.8.2 EXTRACT函數
10.9 日期時間的算法
10.9.1 時間間隔和日期時間的算法
10.9.2 DATE數據類型的日期算法
10.9.3 計算兩個日期時間之間的時間間隔
10.9.4 DATE和TIMESTAMP混合計算
10.9.5 時間間隔的加減運算
10.9.6 時間間隔的乘除運算
10.9.7 使用不受限制的時間間隔類型
10.10 日期/時間函數的快速參考

11 記錄類型

11.1 PL/SQL中的記錄
11.1.1 使用記錄的好處
11.1.2 聲明記錄
11.1.3 程序員自定義的記錄類型
11.1.4 使用記錄類型
11.1.5 記錄的比較
11.1.6 觸發器偽記錄

12 集合

12.1 集合概述
12.1.1 集合概念和術語
12.1.2 集合類型
12.1.3 集合示例
12.1.4 使用集合的場合
12.1.5 選擇一個集合類型
12.2 集合方法(內置)
12.2.1 COUNT方法
12.2.2 DELETE方法
12.2.3 EXISTS方法
12.2.4 EXTEND方法
12.2.5 FIRST和LAST方法
12.2.6 LIMIT方法
12.2.7 PRIOR和NEXT方法
12.2.8 TRIM方法
12.3 使用集合
12.3.1 聲明集合類型
12.3.2 集合變量的聲明和初始化
12.3.3 用數據填充集合
12.3.4 訪問集合內的數據
12.3.5 使用字符串索引的集合
12.3.6 復雜數據類型的集合
12.3.7 多級集合
12.3.8 在SQL中使用集合
12.4 嵌套表的多重集合操作
12.4.1 測試嵌套表是否相等及成員歸屬
12.4.2 檢查元素是否是嵌套表的成員
12.4.3 執行高級別集合操作
12.4.4 嵌套表中的去重
12.5 schema級別集合的維護
12.5.1 必需的權限
12.5.2 集合和數據字典

13 其他數據類型

13.1 BOOLEAN類型
13.2 RAW數據類型
13.3 UROWID和ROWID數據類型
13.3.1 獲取ROWID
13.3.2 使用ROWID
13.4 LOB數據類型
13.5 使用LOB
13.5.1 理解LOB定位符
13.5.2 LOB的空和NULL
13.5.3 向LOB中寫入數據
13.5.4 讀取LOB數據
13.5.5 BFILE的不同之處
13.5.6 SecureFiles和BasicFiles
13.5.7 臨時LOB
13.5.8 原生的LOB操作
13.5.9 LOB轉換函數
13.6 預定義的對象類型
13.6.1 XMLType類型
13.6.2 URI類型
13.6.3 Any類型

第4部分 PL/SQL中的SQL

14 DML和事務管理

14.1 PL/SQL中的DML
14.1.1 DML簡介
14.1.2 DML操作符的游標屬性
14.1.3 從DML語句返回信息
14.1.4 DML和異常處理
14.1.5 DML和記錄
14.2 事務管理
14.2.1 COMMIT語句
14.2.2 ROLLBACK語句
14.2.3 SAVEPOINT語句
14.2.4 SET TRANSACTION語句
14.2.5 LOCK TABLE語句
14.3 自治事務
14.3.1 定義自治事務
14.3.2 自治事務的規則和限制
14.3.3 事務的可見性
14.3.4 何時使用自治事務
14.3.5 創建自治日志記錄機制

15 數據提取

15.1 游標基礎
15.1.1 一些數據提取術語
15.1.2 典型的查詢操作
15.1.3 游標屬性介紹
15.1.4 在游標中引用PL/SQL變量
15.1.5 顯式與隱式游標之間的選擇
15.2 使用隱式游標
15.2.1 隱式游標示例
15.2.2 隱式游標的異常處理
15.2.3 隱式SQL游標的屬性
15.3 使用顯式游標
15.3.1 聲明顯式游標
15.3.2 打開顯式游標
15.3.3 從顯式游標獲取
15.3.4 顯式游標中的列別名
15.3.5 關閉顯式游標
15.3.6 顯式游標屬性
15.3.7 游標參數
15.4 SELECT…FOR UPDATE
15.4.1 COMMIT釋放鎖定
15.4.2 WHERE CURRENT OF 子句
15.5 游標變量和REF CURSOR
15.5.1 為什么使用游標變量
15.5.2 與靜態游標的相似之處
15.5.3 聲明REF CURSOR類型
15.5.4 聲明游標變量
15.5.5 打開游標變量
15.5.6 從游標變量中提取數據
15.5.7 游標變量的使用規則
15.5.8 將游標變量作為參數傳遞
15.5.9 游標變量的約束限制
15.6 游標表達式
15.6.1 使用游標表達式
15.6.2 游標表達式的約束限制

16 動態SQL和動態PL/SQL

16.1 NDS語句
16.1.1 EXECUTE IMMEDIATE語句
16.1.2 OPEN FOR語句
16.1.3 4種動態SQL方法
16.2 綁定變量
16.2.1 參數模式
16.2.2 重復的占位符
16.2.3 傳遞NULL值
16.3 使用對象和集合
16.4 動態PL/SQL
16.4.1 建立動態PL/SQL塊
16.4.2 用動態塊替換重復代碼
16.5 NDS建議
16.5.1 對共享程序使用調用者權限
16.5.2 預測並處理動態錯誤
16.5.3 使用綁定而非拼接
16.5.4 減少代碼注入的危險
16.6 何時使用DBMS_SQL
16.6.1 獲得查詢列信息
16.6.2 實現第四種方法的動態SQL需求
16.6.3 最小化動態游標解析
16.6.4 Oracle數據庫11g新動態SQL特性
16.6.5 DBMS_SQL增強安全

第5部分 構造PL/SQL應用程序

17 過程、函數和參數

17.1 代碼模塊化
17.2 過程
17.2.1 調用一個過程
17.2.2 過程頭部
17.2.3 過程體
17.2.4 END標簽
17.2.5 RETURN語句
17.3 函數
17.3.1 函數的結構
17.3.2 返回的數據類型
17.3.3 END標簽
17.3.4 調用函數
17.3.5 不帶參數的函數
17.3.6 函數頭
17.3.7 函數體
17.3.8 RETURN語句
17.4 參數
17.4.1 定義參數
17.4.2 實參和形參
17.4.3 參數模式
17.4.4 在PL/SQL中顯式地關聯實參和形參
17.4.5 NOCOPY參數模式限定符
17.4.6 缺省值
17.5 局部或者嵌套模塊
17.5.1 使用局部模塊的益處
17.5.2 局部模塊的作用范圍
17.5.3 用局部模塊使得代碼更整潔
17.6 模塊的重載
17.6.1 重載的益處
17.6.2 重載的限制
17.6.3 數字類型的重載
17.7 前置聲明
17.8 高級主題
17.8.1 在SQL內部調用我們的函數
17.8.2 表函數
17.8.3 確定性函數
17.8.4 隱式游標結果(Oracle數據庫12c)
17.9 將模塊化進行到底

18 程序包

18.1 為什么使用程序包
18.1.1 演示程序包的能力
18.1.2 與程序包相關的一些概念
18.1.3 圖示私有性
18.2 構建程序包的規則
18.2.1 程序包說明
18.2.2 包體
18.2.3 包的初始化
18.3 包元素的調用規則
18.4 使用包數據
18.4.1 在一個Oracle會話內全局可見
18.4.2 全局公有數據
18.4.3 包游標
18.4.4 包的串行化
18.5 何時使用包
18.5.1 封裝對數據的訪問
18.5.2 避免直接量的硬編碼
18.5.3 提高內置特性的可用性
18.5.4 把邏輯上相關的功能組織在一起
18.5.5 緩存靜態的會話數據
18.6 包和對象類型

19 觸發器

19.1 DML觸發器
19.1.1 DML觸發器的概念
19.1.2 創建DML觸發器
19.1.3 DML觸發器的例子:嚴禁作弊!
19.1.4 同一類型的多個觸發器
19.1.5 如何對觸發順序排序
19.1.6 突變表的錯誤
19.1.7 復合觸發器:聚在一處
19.2 DDL觸發器
19.2.1 創建DDL觸發器
19.2.2 可用事件
19.2.3 可用屬性
19.2.4 使用事件和屬性
19.2.5 刪除不可刪除的
19.2.6 INSTEAD OF CREATE觸發器
19.3 數據庫事件觸發器
19.3.1 創建數據庫事件觸發器
19.3.2 STARTUP觸發器
19.3.3 SHUTDOWN觸發器
19.3.4 LOGON觸發器
19.3.5 LOGOFF觸發器
19.3.6 SERVERERROR觸發器
19.4 INSTEAD OF觸發器
19.4.1 創建INSTEAD OF觸發器
19.4.2 INSTEAD OF INSERT觸發器
19.4.3 INSTEAD OF UPDATE觸發器
19.4.4 INSTEAD OF DELETE觸發器
19.4.5 填充表
19.4.6 嵌套表的lNSTEAD OF觸發器
19.5 AFTER SUSPEND觸發器
19.5.1 建立AFTER SUSPEND觸發器
19.5.2 看看真實的觸發器
19.5.3 ORA_SPACE_ERROR_lNFO函數
19.5.4 DBMS_RESUMABLE包
19.5.5 捕獲多個時間
19.5.6 是否該處理?
19.6 維護觸發器
19.6.1 禁用、啟用以及刪除觸發器
19.6.2 創建一個禁用的觸發器
19.6.3 查看觸發器
19.6.4 檢查觸發器的有效性

20 管理PL/SQL代碼

20.1 管理數據庫內的代碼
20.1.1 數據字典視圖概述
20.1.2 顯示存儲對象的信息
20.1.3 源代碼的顯示和搜索
20.1.4 根據程序的大小確定Pinning需求
20.1.5 獲得存儲代碼的屬性
20.1.6 通過視圖分析和更改觸發器狀態
20.1.7 分析參數信息
20.1.8 分析標識符的使用(Oracle數據庫11g的PL/Scope)
20.2 管理依賴關系及重編譯代碼
20.2.1 通過數據字典視圖分析依賴關系
20.2.2 細粒度依賴(Oracle數據庫11g)
20.2.3 遠程依賴
20.2.4 Oracle的遠程調用模式的限制
20.2.5 重編譯無效的程序單元
20.3 編譯時刻警告
20.3.1 一個快速示例
20.3.2 開啟編譯時刻告警
20.3.3 一些有用的警告
20.4 測試PL/SQL程序
20.4.1 典型的、華而不實的測試技術
20.4.2 PL/SQL代碼測試的一般建議
20.4.3 PL/SQL的自動測試選項
20.5 跟蹤PL/SQL的執行
20.5.1 DBMS_UTILITY.FORMAT_CALL_STACK
20.5.2 UTL_CALL_STACK(Oracle數據庫12c)
20.5.3 DBMS_APPLICATION_INFO
20.5.4 使用opp_trace進行跟蹤
20.5.5 DBMS_TRACE工具包
20.6 PL/SQL程序的調試
20.6.1 錯誤的調試方法
20.6.2 調試技巧和策略
20.7 使用白名單來控制對程序單元的訪問
20.8 存儲代碼的保護
20.8.1 封裝的約束和局限
20.8.2 使用封裝程序
20.8.3 使用DBMS_DDL進行動態封裝
20.8.4 封裝代碼的使用指導
20.9 基於版本的重定義(Oracle數據庫11g R2版本)

21 PL/SQL的性能優化

21.1 輔助優化的工具
21.1.1 內存使用分析
21.1.2 發現PL/SQL代碼中的瓶頸
21.1.3 計算花費時間
21.1.4 選擇最快的程序
21.1.5 避免無限循環
21.1.6 性能相關的警告
21.2 優化編譯器
21.2.1 優化器工作原理
21.2.2 循環Fetch操作的運行時優化
21.3 數據緩存技術
21.3.1 基於包的緩存
21.3.2 確定性函數的緩存
21.3.3 函數結果緩存(Oracle數據庫11g)
21.3.4 緩存總結
21.4 重復的SQL的語句批處理
21.4.1 通過BULK COLLECT加速查詢
21.4.2 使用FORALL加速DML
21.5 利用管道化的表函數提升性能
21.5.1 用基於管道化函數的加載方式替換基於行的插入
21.5.2 用管道函數調優Merge操作
21.5.3 用並行管道函數進行異步數據導出
21.5.4 並行管道函數中的分區和流子句對性能的影響
21.5.5 管道函數和基於成本的優化器
21.5.6 用管道函數優化負載的數據加載
21.5.7 管道函數結束語
21.6 專用的優化技術
21.6.1 使用NOCOPY參數模式提示符
21.6.2 使用正確的數據類型
21.6.3 SQL(12.1及更高版本)的函數性能優化
21.7 性能回顧

22 I/O操作和PL/SQL

22.1 顯示信息
22.1.1 啟用DBMS_OUTPUT
22.1.2 向緩存中寫入行
22.1.3 從緩存中讀取內容
22.2 文件的讀寫
22.2.1 UTL_FILE_DIR參數
22.2.2 使用Oracle目錄
22.2.3 打開文件
22.2.4 文件已經打開了嗎?
22.2.5 關閉文件
22.2.6 讀取文件
22.2.7 向文件中寫
22.2.8 復制文件
22.2.9 刪除文件
22.2.10 改名和移動文件
22.2.11 提取文件屬性
22.3 發送郵件
22.3.1 Oracle的前提條件
22.3.2 設置網絡安全
22.3.3 發送一個短的(小於32767字節)的純文本消息
22.3.4 在郵件地址中加上“界面友好的”的名字
22.3.5 發送任意長度的純文本消息
22.3.6 發送帶有小附件(小於32767字節)的消息
22.3.7 以附件形式發送一個小文件(小於32767字節)
22.3.8 任意大小的附件
22.4 使用基於Web的數據(HTTP)
22.4.1 “分片”獲得一個Web頁面
22.4.2 把頁面提取到一個LOB中
22.4.3 使用HTTP的用戶名/密碼驗證
22.4.4 獲取一個SSL加密的Web頁面(使用HTTPS)
22.4.5 通過GET或者POST向Web頁面提交數據
22.4.6 禁用cookie或者使cookie持久化
22.4.7 從FTP服務器獲取數據
22.4.8 使用代理服務器
22.5 PL/SQL中可用的其他I/O類型
22.5.1 數據庫管道、隊列、告警
22.5.2 TCPSocket
22.5.3 Oracle的內置Web服務器

第6部分 高級PL/SQL主題

23 應用系統安全與PL/SQL

23.1 安全概述
23.2 加密
23.2.1 密鑰長度
23.2.2 算法
23.2.3 填補和連接
23.2.4 DBMS_CRYPTO包
23.2.5 數據加密
23.2.6 LOB的加密
23.2.7 安全文件
23.2.8 數據解密
23.2.9 生成密鑰
23.2.10 密鑰的管理
23.2.11 加密哈希
23.2.12 使用消息驗證碼
23.2.13 使用透明數據加密(TDE)
23.2.14 透明的表空間加密
23.3 行級安全
23.3.1 為什么要學習RLS
23.3.2 一個簡單的RLS示例
23.3.3 靜態與動態策略
23.3.4 使用列敏感的RLS
23.3.5 RLS調試
23.4 應用程序上下文
23.4.1 使用應用程序上下文
23.4.2 上下文的安全
23.4.3 把上下文用作RLS的謂詞條件
23.4.4 識別出非數據庫的用戶
23.5 細粒度審計
23.5.1 為什么要學習FGA
23.5.2 一個簡單的FGA示例
23.5.3 訪問多少列
23.5.4 查看審計跟蹤信息
23.5.5 使用綁定變量
23.5.6 使用句柄模塊

24 PL/SQL架構

24.1 DIANA
24.2 Oracle如何執行PL/SQL代碼
24.2.1 一個示例
24.2.2 編譯器的限制
24.3 PL/SQL的缺省包
24.4 執行權限模型
24.4.1 定義者權限模型
24.4.2 調用者權限模型
24.4.3 組合權限模型
24.4.4 給PL/SQL程序單元授予角色(Oracle數據庫12c)
24.4.5 “誰調用了我?”函數(Oracle數據庫12c)
24.4.6 視圖的BEQUEATH CURRENT_USER子句(Oracle數據庫12c)
24.4.7 調用者權限優點的限制(Oracle數據庫12c)
24.5 條件編譯
24.5.1 條件編譯的示例
24.5.2 查詢指令
24.5.3 $IF指令
24.5.4 $ERROR指令
24.5.5 將代碼與包常量同步
24.5.6 用查詢指令實現程序專有設置
24.5.7 使用預處理后的代碼
24.6 PL/SQL和數據庫實例內存
24.6.1 SGA、PGA和UGA
24.6.2 游標、內存及其他
24.6.3 減少內存使用的技巧
24.6.4 內存用光了怎么辦
24.7 原生式編譯
24.7.1 什么時候使用解釋模式
24.7.2 什么時候使用原生模式
24.7.3 原生編譯和數據庫版本
24.8 一些須知

25 PL/SQL的全球化和本地化

25.1 概述和術語
25.2 Unicode入門
25.2.1 國家字符集的數據類型
25.2.2 字符編碼
25.2.3 和全球化支持相關的參數
25.2.4 Unicode函數
25.3 字符語義
25.4 字符串排序順序
25.4.1 二進制排序
25.4.2 單語言排序
25.4.3 多語言排序
25.5 多語言信息檢索
25.5.1 信息檢索和PL/SQL
25.6 日期/時間
25.6.1 時間戳數據類型
25.6.2 日期/時間格式
25.7 貨幣轉換
25.8 PL/SQL的全球化開發工具箱
25.8.1 UTL_I18N工具包
25.8.2 UTL_LMS異常處理包
25.8.3 GDK實現選項

26 PL/SQL的面向對象特性

26.1 Oracle對象特性的介紹
26.2 對象類型示例
26.2.1 創建一個基類
26.2.2 創建子類型
26.2.3 方法
26.2.4 在Oracle數據庫11g及以后版本中調用父類的方法
26.2.5 保存、提取、使用持久化對象
26.2.6 演變和創建
26.2.7 回到指針嗎?
26.2.8 泛化數據:ANY類型
26.2.9 我們自己做
26.2.10 對象的比較
26.3 對象視圖
26.3.1 一個關系型系統的示例
26.3.2 帶有集合屬性的對象視圖
26.3.3 對象子視圖
26.3.4 帶有反關系的對象視圖
26.3.5 INSTEAD OF觸發器
26.3.6 對象視圖和對象表的區別
26.4 維護對象類型和對象視圖
26.4.1 數據字典
26.4.2 權限
26.5 來自一個關系開發者的總結思考(C551, E1200)

27 從PL/SQL中調用Java

27.1 Oracle和Java
27.2 准備好在Oracle中使用Java
27.2.1 安裝Java
27.2.2 創建和編譯我們的Java代碼
27.2.3 設置Java開發和執行的權限
27.3 一個簡單的演示
27.3.1 查找Java功能
27.3.2 創建一個自定義Java類
27.3.3 編譯和加載到Oracle
27.3.4 創建一個PL/SQL的包裝器
27.3.5 從PL/SQL刪除文件
27.4 使用loadjava
27.5 使用dropjava
27.6 管理數據庫中的Java
27.6.1 Oracle中的Java命名空間
27.6.2 檢查加載的Java元素
27.7 使用DBMS_JAVA
27.7.1 LONGNAME:轉換Java長名字
27.7.2 GET_、SET_和RESET_COMPILER_OPTION:得到和設置(一些)編譯器選項
27.7.3 SET_OUTPUT:允許從Java中輸出
27.7.4 EXPORT_SOURCE、EXPORT_RESOURCE和EXPORT_CLASS:導出模式對象
27.8 在PL/SQL中發布與使用Java
27.8.1 調用規范
27.8.2 一些調用規范的規則
27.8.3 映射數據類型
27.8.4 在SQL中調用Java方法
27.8.5 Java的異常處理
27.8.6 擴展文件I/O功能
27.8.7 其他示例

28 外部過程

28.1 外部過程介紹
28.1.1 示例:調用一個系統命令
28.1.2 外部過程的架構
28.2 Oracle網絡配置
28.2.1 定義監聽配置
28.2.2 配置的安全特性
28.3 設置多線程模式
28.4 創建一個Oracle庫
28.5 編寫調用規范
28.5.1 調用規范:整體語法
28.5.2 參數映射:示例重溫
28.5.3 參數映射:完整的內容
28.5.4 更多的語法:參數子句
28.5.5 參數屬性
28.6 從調用的C程序中引發一個異常
28.7 非默認的代理
28.8 維護外部過程
28.8.1 刪除庫
28.8.2 數據字典
28.8.3 規則和警示

附錄A 正則表達式元字符和函數參數

A.1 元字符

A.2 函數與參數

A.2.1 正則表達式函數
A.2.2 正則表達式參數

附錄B 數字格式模型

B.1 指明貨幣單位

附錄C 日期格式模型

思維導圖

Oracle PLSQL程序設計(第6版)(上下冊)

防止博客圖床圖片失效,防止圖片源站外鏈:

http://www.processon.com/chart_image/5e5a8b36e4b0d4dc87768831.png)

思維導圖在線編輯鏈接:

https://www.processon.com/view/5e5a8b36e4b0d4dc8776882e


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM