|
-- 會員 / 註冊 --
|
|
|
|
Oracle PL/SQL實例精解(原書第5版) ( 簡體 字) |
作者:作者:〔美〕 本杰明·羅森維格(Benjamin Rosenzweig)〔加〕 艾琳娜·拉希莫夫(Elena Rakhimov) 著 | 類別:1. -> 資料庫 -> Oracle |
譯者: |
出版社:機械工業出版社 | 3dWoo書號: 43591 詢問書籍請說出此書號!【缺書】 NT售價: 395 元 |
出版日:3/1/2016 |
頁數:372 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787111528876 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:使用Oracle數據庫12c的PL/SQL,你可以構建在任何環境(包括云環境)下都提供前所未有的性能和效率的解決方案。本書通過真實場景的實驗、大量的示例、練習和項目來講解你所需的全部PL/SQL技能。本版根據PL/SQL的最新版本進行了全面更新,涵蓋從基礎語法、程序控制到最新的優化和安全增強等方面的知識。 你可以通過本書獨立學習每個關鍵任務,以及當今最有價值的Oracle 12c的PL/SQL編程技術。從informit.com/title/0133796787下載項目和練習,每當你完成一個練習,可以分享作者的解決方案,這些解決方案提供深度探索視角和已證實的最佳實踐。 本書的寫作手法充分反映了作者在哥倫比亞大學向專業人員講授PL/SQL編程的經驗和技巧。通過這種逐步分解的講解方式,數據庫開發者和DBA的新手可以更快地獲得實踐經驗;有經驗的PL/SQL程序員可以把本書作為很好的Oracle數據庫12c實踐性解決方案的參考資源。
通過閱讀本書,你將學到: 掌握PL/SQL的基本概念和語言基礎知識,理解SQL在PL/SQL中的作用 使用條件和迭代程序控制,包括CONTINUE和CONTINUE WHEN 高效地處理錯誤和異常 使用游標和觸發器,包括復合觸發器。 使用存儲過程、函數和包來編寫其他程序可以運行的模塊化代碼 使用集合、對象-關系功能、本地動態SQL、批量SQL和其他高級功能
本版更新內容: 全面更新的代碼示例 利用調用者權限函數的結果緩存來提高性能 動態SQL、OCI和JDBC對僅在PL/SQL中有效的數據類型的擴展支持 安全性增強,包括ACCESSIBLE BY白名單、改進的特權控制,以及不可見列
內容簡介 本書是一本逐步分解的、詳盡的PL/SQL編程教程,使用真實場景的實驗、大量示例、練習和項目來介紹讀者所需的PL/SQL編程技能,涵蓋oracle 12c的最新特性。作者的寫作手法源自于在哥倫比亞大學教授PL/SQL編程技術的經驗,深度探索PL/SQL編程技術及最佳實踐。通過使用本書,你可以快速掌握PL/SQL編程基本知識,并建立工程化的概念,提升實際問題解決能力。 全書共25章,第1章介紹PL/SQL的架構、開發環境和基礎知識;第2章講解PL/SQL編程基礎;第3章介紹PL/SQL中的DML語句和事務控制;第4章和第5章介紹條件控制,包括IF語句和CASE語句;第6章和第7章探討循環,包括簡單循環、WHILE循環、數值FOR循環、CONTINUE語句和CONTINUE WHEN語句,以及如何互相嵌套不同類型的循環;第8~10章深入探討錯誤處理和異常的概念及處理方法,包括錯誤處理、內置異常、異常的作用域和傳播,以及如何定義和引發自己的異常,如何重新引發異常等;第11章和第12章介紹游標,涉及游標的基本概念、參數化游標、嵌套游標及FOR UPDATE和WHERE CURRENT游標;第13章和第14章探討觸發器的概念、變異表和復合觸發器;第15章介紹集合,包括PL/SQL表、變長數組和多級集合等;第16章介紹記錄類型、嵌套記錄和記錄集合;第17章講解如何創建和使用動態SQL;第18章介紹如何使用批量SQL功能來優化PL/SQL代碼;第19章簡要介紹存儲過程;第20章介紹存儲函數的基礎知識;第21章詳細介紹包,包括創建包、游標變量、擴展包、包的實例化和初始化等;第22章介紹收集存儲代碼的相關信息,以及如何重載函數和過程;第23章介紹Oracle對象類型;第24章介紹Oracle提供的幾個主要的包;第25章介紹PL/SQL調優工具、優化級別,以及子程序內聯。 |
目錄:譯者序
前言
作者簡介
致謝
第1章 PL/SQL概念 1
1.1 實驗1:PL/SQL架構 1使用 8
1.2.2 初步掌握SQL * Plus的使用 10
1.2.3 執行PL/SQL腳本 11
1.3 實驗3:PL/SQL基礎知識 14
1.3.1 DBMS_OUTPUT.PUT_LINE語句 14
1.3.2 替代變量功能 17
1.4 總結 21
第2章 PL/SQL語言基礎 22
2.1 實驗:PL/SQL編程基礎 22
2.1.1 PL/SQL語言組件 23
2.1.2 PL/SQL變量 23
2.1.3 PL/SQL保留字 26
2.1.4 PL/SQL中的標識符 26
2.1.5 掛靠的數據類型 27
2.1.6 聲明和初始化變量 29
2.1.7 塊作用域、嵌套塊和標簽 32
2.2 總結 34
第3章 在PL/SQL中的SQL 35
3.1 實驗1:在PL/SQL中的DML
語句 35
3.1.1 使用SELECT INTO初始化 變量 36
3.1.2 使用變量初始化的SELECT INTO語法 37
3.1.3 在PL/SQL塊中使用DML 38
3.1.4 在PL/SQL塊中使用序列 39
3.2 實驗2:在PL/SQL中的事務 控制 40
3.2.1 使用COMMIT、ROLLBACK和
SAVEPOINT 40
3.2.2 將DML和事務控制相結合 43
3.3 總結 45
第4章 條件控制:IF語句 46
4.1 實驗1:IF語句 46
4.1.1 IF-THEN語句 47
4.1.2 IF-THEN-ELSE語句 48
4.2 實驗2:ELSIF語句 50
4.3 實驗3:嵌套的IF語句 54
4.4 總結 56
第5章 條件控制:CASE語句 57
5.1 實驗1:CASE語句 57
5.1.1 CASE語句 57
5.1.2 搜索CASE語句 59
5.2 實驗2:CASE表達式 64
5.3 實驗3:NULLIF和COALESCE
函數 67
5.3.1 NULLIF函數 67
5.3.2 COALESCE函數 69
5.4 總結 71
第6章 迭代控制:第一部分 72
6.1 實驗1:簡單循環 72
6.1.1 EXIT語句 73
6.1.2 EXIT WHEN語句 76
6.2 實驗2:WHILE循環 77
6.2.1 使用WHILE循環 77
6.2.2 提前終止WHILE循環 80
6.3 實驗3:數字FOR循環 81
6.3.1 在循環中使用IN選項 82
6.3.2 在循環中使用REVERSE選項 84
6.3.3 提前終止數字FOR循環 84
6.4 總結 85
第7章 迭代控制:第二部分 86
7.1 實驗1:CONTINUE語句 86
7.1.1 使用CONTINUE語句 86
7.1.2 CONTINUE WHEN語句 89
7.2 實驗2:嵌套循環 92
7.2.1 使用嵌套循環 92
7.2.2 使用循環標簽 93
7.3 總結 95
第8章 錯誤處理和內置異常 96
8.1 實驗1:處理錯誤 96
8.2 實驗2:內置異常 98
8.3 總結 103
第9章 異常 104
9.1 實驗1:異常作用域 104
9.2 實驗2:用戶定義的異常 107
9.3 實驗3:異常傳播 111
9.4 總結 116
第10章 異常:高級概念 117
10.1 實驗1:RAISE_APPLICATION_
ERROR 117
10.2 實驗2:EXCEPTION_INIT
編譯指示 120
10.3 實驗3:SQLCODE和
SQLERRM 122
10.4 總結 124
第11章 游標簡介 125
11.1 實驗1:游標類型 125
11.1.1 使用隱式游標 126
11.1.2 使用顯式游標 127
11.2 實驗2:游標循環 130
11.2.1 處理顯式游標 130
11.2.2 使用用戶定義的記錄 133
11.2.3 使用游標屬性 134
11.3 實驗3:游標FOR循環 138
11.4 實驗4:嵌套游標 139
11.5 總結 143
第12章 高級游標 144
12.1 實驗1:參數化游標 144
12.2 實驗2:復雜的嵌套游標 145
12.3 實驗3:FOR UPDATE和WHERE CURRENT游標 147
12.3.1 FOR UPDATE游標 147
12.3.2 游標中的FOR UPDATE 觸發器 151
13.1.1 數據庫觸發器 151
13.1.2 BEFORE觸發器 154
13.1.3 AFTER觸發器 159
13.1.4 自治事務 160
13.2 實驗2:觸發器類型 162
13.2.1 行觸發器和語句觸發器 162
13.2.2 INSTEAD OF觸發器 163
13.3 總結 167
第14章 變異表和復合觸發器 168
14.1 實驗1:變異表 168
14.1.1 什么是變異表 168
14.1.2 解決變異表問題 170
14.2 實驗2:復合觸發器 172
14.2.1 什么是復合觸發器 172
14.2.2 解決變異表問題的復合
觸發器 174
14.3 總結 177
第15章 集合 178
15.1 實驗1:PL/SQL表 178
15.1.1 關聯數組 179
15.1.2 嵌套表 181
15.1.3 集合方法 184
15.2 實驗2:變長數組 187
15.3 實驗3:多級集合 190
15.4 總結 192
第16章 記錄 193
16.1 實驗1:記錄類型 193
16.1.1 基于表和基于游標的記錄 194
16.1.2 用戶定義的記錄 196
16.1.3 記錄兼容性 197
16.2 實驗2:嵌套記錄 199
16.3 實驗3:記錄集合 202
16.4 總結 205
第17章 本地動態SQL 206
17.1 實驗1:EXECUTE IMMEDIATE語句 206
17.1.1 使用EXECUTE IMMEDIATE
語句 207
17.1.2 如何避免使用EXECUTE
IMMEDIATE的常見ORA錯誤 209
17.2 實驗2:OPEN-FOR、FETCH和
CLOSE語句 216
17.2.1 打開游標 216
17.2.2 從游標中讀取 217
17.2.3 關閉游標 217
17.3 總結 223
第18章 批量SQL 224
18.1 實驗1:FORALL語句 224
18.1.1 使用FORALL語句 225
18.1.2 SAVE EXCEPTIONS選項 228
18.1.3 INDICES OF選項 230
18.1.4 VALUES OF選項 230
18.2 實驗2:BULK COLLECT子句 232
18.3 實驗3:在SQL語句中綁定集合 239
18.3.1 將集合與EXECUTE IMMEDIATE語句綁定 240
18.3.2 將集合與OPEN-FOR、FETCH和CLOSE語句綁定 245
18.4 總結 248
第19章 過程 249
19.1 模塊化代碼的好處 249
19.1.1 塊結構 250
19.1.2 匿名塊 250
19.2 實驗1:創建過程 250
19.2.1 實踐創建過程的語法 251
19.2.2 查詢數據字典來獲取過程的
信息 252
19.3 實驗2:傳遞的過程參數IN和
OUT 253
19.4 總結 255
第20章 函數 256
20.1 實驗1:創建函數 256
20.1.1 創建存儲函數 257
20.1.2 使用函數 259
20.2 實驗2:在SQL語句中使用函數 260
20.2.1 在SQL語句中調用函數 261
20.2.2 編寫復雜函數 261
20.3 實驗3:在SQL中優化函數執行 262
20.3.1 使用WITH子句定義函數 262
20.3.2 使用UDF編譯指示創建函數 263
20.4 總結 263
第21章 包 264
21.1 實驗1:創建包 264
21.1.1 創建包規范 265
21.1.2 創建包體 267
21.1.3 調用已存儲的包 269
21.1.4 創建私有對象 270
21.2 實驗2:游標變量 274
21.3 實驗3:擴展包 281
21.4 實驗4:包的實例化和初始化 292
21.5 實驗5:SERIALLY_REUSABLE包 294
21.6 總結 296
第22章 存儲代碼 297
22.1 實驗:收集存儲代碼的相關信息 297
22.1.1 從數據字典獲取存儲代碼的信息 297
22.1.2 重載模塊 300
22.2 總結 305
第23章 Oracle對象類型 306
23.1 實驗1:對象類型 306
23.1.1 創建對象類型 308
23.1.2 使用對象類型與集合 310
23.2 實驗2:對象類型的方法 314
23.2.1 構造方法 314
23.2.2 成員方法 316
23.2.3 靜態方法 317
23.2.4 比較對象 318
23.3 總結 322
第24章 Oracle提供的包 323
24.1 實驗1:利用Oracle提供的包擴展功能 323
24.1.1 在PL/SQL中利用UTL_FILE訪問文件 324
24.1.2 利用DBMS_JOB調度作業 327
24.1.3 利用DBMS_XPLAN生成解釋計劃 329
24.1.4 利用DBMS_SQL產生隱式語句結果 333
24.2 實驗2:利用Oracle提供的包報告錯誤 334
24.2.1 利用DBMS_UTILITY包報告錯誤 334
24.2.2 利用UTL_CALL_STACK |
序: |
|