Oracle PL/SQL例項精解 (原書第4版)
Oracle PL/SQL例項精解(原書第4版)
本書是一本集中式的解決方案範例教程,使用真實場景的試驗、大量範例、練習來介紹所需的所有Oracle
PL/SQL技能。這個版本完全面向Oracle 11g,覆蓋Oracle
PL/SQL程式設計的所有基礎知識,包括PL/SQL語法、程式控制結構、包,以及Oracle 11g重要改進的觸發器。
本書的寫作手法充分體現了作者在哥倫比亞大學向專業人士教授PL/SQL程式設計的經驗和技巧。透過這種逐步分解的講解方式,資料庫開發者和DBA的新手可以更快地獲取工程實踐經驗;高階的PL/SQL程式設計師可以把本書作為實踐性解決方案的參考資源。
主要內容:
- 掌握基本的PL/SQL概念和通用的程式語言基礎知識,理解如何在PL/SQL程式碼中使用SQL。
- 使用條件式和迭代式程式控制技術,包括新的CONTINUE和CONTINUE WHEN語句。
- 高效地處理錯誤和異常。
- 使用遊標和觸發器,包括Oracle 11g新提供的,強大的複合觸發器。
- 使用儲存過程、函式和包來編寫其他程式可以執行的模組化程式碼。
- 使用集合、物件-關係特性、本地動態SQL、批次SQL和其他高階的PL/SQL特性。
- 非常方便的參考資源附錄:PL/SQL格式化指南、資料庫模式範例、ANSI SQL標準參考等。
作者簡介:
Benjamin Rosenzweig是Misys公司的軟體開發經理。在此之前,他是Oracle公司的首席顧問。他的工作經歷包括在尼泊爾的加德滿都市開發藏文-英文 的電子字典,支援位於Goldman Sachs的演示中心,以及管理TIAA-CREF的交易系統。他是哥倫比亞大學計算機技術與應用程式設計的講師,並被授予傑出教授獎。他的主要著作為 《Oracle Forms Developer: The Complete Video Course》和《Oracle Web Application Programming for PL/SQL Developers》。Elena Silvestrova Rakhimov是Alea軟體的高階研發師和團隊領導者。在企業和商業環境的資料庫開發經驗超過15年,涉及領域包括非贏利組織和華爾街,始終在哥倫比亞大學教授資料庫程式設計方面的課程。
本書目錄:
Oracle 11g 中PL/SQL 新特性簡介第1 章 PL/SQL 概念 ………………………1
1.1 在客戶端/ 伺服器架構中PL/SQL 的應用 …1
1.1.1 使用PL/SQL 匿名語句塊 ……………6
1.1.2 理解如何執行PL/SQL ………………8
1.2 SQL*Plus 中的PL/SQL …………………9
1.2.1 使用替代變數 …………………… 13
1.2.2 使用DBMS_OUTPUT.PUT_L NE語句 … 14
1.3 動手試驗 ……………………………… 15
第2 章 通用程式語言基礎…………… 16
2.1 PL/SQL 程式設計基礎 ……………………… 16
2.1.1 充分利用PL/SQL 語言元件 ………… 17
2.1.2 充分利用PL/SQL 變數 …………… 18
2.1.3 合理使用PL/SQL 保留字 ………… 20
2.1.4 在PL/SQL 中使用識別符號 ………… 21
2.1.5 使用Anchored 資料型別 ………… 22
2.1.6 宣告和初始化變數 ……………… 24
2.1.7 理解語句塊、巢狀語句塊和標籤的作用範圍 … 27
2.2 動手試驗 ……………………………… 30
第3 章 PL/SQL 中的SQL ……………… 31
3.1 在PL/SQL 中使用DML ……………… 31
3.1.1 變數初始化時使用SELECT NTO語法…… 32
3.1.2 在PL/SQL 語句塊中使用DML … 34
3.1.3 在PL/SQL 語句塊中使用序列 …… 35
3.2 使用SAVEPO NT …………………… 36
3.3 動手試驗 ……………………………… 41
第4 章 條件控制: F 語句 …………… 42
4.1 F 語句 ………………………………… 42
4.1.1 使用 F-THEN 語句 ……………… 46
4.1.2 使用 F-THEN-ELSE 語句 ……… 49
4.2 ELS F 語句 …………………………… 52
4.3 巢狀 F 語句 …………………………… 60
4.4 動手試驗 ……………………………… 65
第5 章 條件控制:CASE 語句 ………… 66
5.1 CASE 語句 …………………………… 66
5.1.1 使用CASE 語句 ………………… 72
5.1.2 使用搜尋式CASE 語句 ………… 75
5.2 CASE 表示式 ………………………… 79
5.3 NULL F 和COALESCE函式 …………… 85
5.3.1 NULL F 函式 ……………………… 88
5.3.2 使用COALEESCE 函式 ………… 91
5.4 動手試驗 ……………………………… 93
第6 章 迭代控制:第一部分 ………… 95
6.1 簡單迴圈 ……………………………… 95
6.1.1 使用帶有EX T 條件的簡單迴圈 … 98
6.1.2 使用帶有EX T WHEN 條件的簡單迴圈 …100
6.2 WH LE 迴圈 ……………………………103
6.3 數值型FOR 迴圈 ………………………110
6.3.1 與 N 選項一起使用數值型FOR迴圈 …114
6.3.2 與REVERSE 選項一起使用數值型FOR 迴圈 …115
6.4 動手試驗 ………………………………117
第7 章 迭代控制:第二部分 …………118
7.1 CONT NUE 語句 ………………………118
7.1.1 使用CONT NUE 語句 ……………121
7.1.2 使用CONT NUE WHEN語句 …………126
7.2 巢狀迴圈 ………………………………127
7.3 動手試驗 ………………………………133
第8 章 錯誤處理和內建異常 …………134
8.1 處理錯誤 ………………………………134
8.2 內建異常 ………………………………138
8.3 動手試驗 ………………………………146
第9 章 異常 …………………………………147
9.1 異常作用範圍 …………………………147
9.2 使用者定義異常 …………………………154
9.3 異常傳播 ………………………………161
9.3.1 理解異常的傳播方式 ……………166
9.3.2 再次丟擲異常 ……………………169
9.4 動手試驗 ………………………………171
第10 章 異常:高階概念 ………………172
10.1 RA SE_APPL CAT ON_ERROR ……………172
10.2 EXCEPT ON_ N T 編譯指令 …………… 177
10.3 SQLCODE 和SQLERRM ……………180
10.4 動手試驗 ………………………………185
第11 章 遊標簡介 …………………………186
11.1 遊標操作 ………………………………186
11.1.1 充分利用記錄型別 ………………190
11.1.2 處理顯式遊標 ……………………191
11.1.3 充分利用遊標屬性 ………………195
11.1.4 整合所做的工作 …………………197
11.2 使用遊標FOR 迴圈和巢狀遊標 ……200
11.2.1 使用遊標FOR 迴圈 ……………201
11.2.2 處理巢狀的遊標 …………………202
11.3 動手試驗 ………………………………206
第12 章 高階遊標 …………………………207
12.1 在遊標和複雜的巢狀遊標中使用引數 …207
12.1.1 在遊標中使用引數 ………………208
12.1.2 使用複雜的巢狀遊標 ……………208
12.2 FOR UPDATE 和WHERECURRENT 遊標 ……210
第13 章 觸發器 ……………………………214
13.1 什麼是觸發器 …………………………214
13.1.1 理解什麼是觸發器 ………………221
13.1.2 使用BEFORE 和AFTER觸發器 ………222
13.2 觸發器型別 ……………………………225
13.2.1 使用行觸發器和語句觸發器 ……230
13.2.2 使用 NSTEAD OF 觸發器 ………232
13.3 動手試驗 ………………………………236
第14 章 複合觸發器………………………237
14.1 變異表問題 ……………………………237
14.2 複合觸發器 ……………………………244
14.3 動手試驗 ………………………………256
第15 章 集合 ………………………………257
15.1 PL/SQL 表 ……………………………257
15.1.1 使用聯合陣列 ……………………265
15.1.2 使用巢狀表 ………………………270
15.2 變長陣列 ………………………………272
15.3 多層集合 ………………………………279
15.4 動手試驗 ………………………………284
第16 章 記錄 ………………………………285
16.1 記錄型別 ………………………………285
16.1.1 使用基於表的和基於遊標的記錄 ……292
16.1.2 使用使用者定義的記錄 ……………297
16.2 巢狀記錄 ………………………………301
16.3 記錄的集合 ……………………………306
16.4 動手試驗 ………………………………311
第17 章 本地動態SQL …………………312
17.1 EXECUTE MMED ATE語句 ……………312
17.2 OPEN-FOR、FETCH 和CLOSE 語句 ……323
17.3 動手試驗 ………………………………331
第18 章 批次SQL…………………………332
18.1 FORALL 語句 …………………………332
18.2 BULK COLLECT 子句 ………………348
18.3 動手試驗 ………………………………362
第19 章 過程 ………………………………363
19.1 建立過程 ………………………………364
19.1.1 建立過程 …………………………364
19.1.2 從資料字典查詢有關過程的資訊 …366
19.2 過程傳入和傳出引數 …………………366
19.3 動手試驗 ………………………………369
19.3.1 第一部分 …………………………369
19.3.2 第二部分 …………………………369
第20 章 函式 ………………………………370
20.1 建立和使用函式 ………………………370
20.1.1 建立儲存函式 ……………………371
20.1.2 使用函式 …………………………372
20.1.3 在SQL 語句中呼叫函式 …………373
20.1.4 編寫複雜的函式 …………………374
20.2 動手試驗 ………………………………375
第21 章 包 …………………………………376
21.1 使用包的好處 …………………………376
21.1.1 建立包規範 ………………………378
21.1.2 建立包體 …………………………379
21.1.3 呼叫儲存包 ………………………381
21.1.4 建立私有物件 ……………………383
21.1.5 建立包變數和遊標 ………………386
21.2 遊標變數 ………………………………388
21.3 擴充套件包 …………………………………396
21.4 動手試驗 ………………………………408
第22 章 儲存程式碼 …………………………409
22.1 收集有關儲存程式碼的資訊 ……………409
22.1.1 從資料字典收集儲存程式碼資訊 …409
22.1.2 使用RESTR CT_REFERENCES編譯指令實現純度等級 …414
22.1.3 過載模組 …………………………419
22.2 動手試驗 ………………………………424
第23 章 Oracle 中物件型別 ……………425
23.1 物件型別 ………………………………425
23.1.1 使用物件型別 ……………………432
23.1.2 使用集合和物件型別 ……………436
23.2 物件型別方法 …………………………440
23.3 動手試驗 ………………………………461
第24 章 Oracle 提供的包 ………………463
24.1 使用Oracle 提供的包來配置PL/SQL、訪問檔案和排程作業 …463
24.1.1 使用UTL_F LE 來訪問檔案 ……469
24.1.2 使用DBMS_JOB 來排程作業 …470
24.1.3 提交作業 …………………………471
24.2 使用Oracle 提供的包來生成解釋計劃和建立HTML頁面 ……473
24.3 使用Oracle Web Toolkit 來建立Web 頁面 ……482
附錄A PL/SQL 格式化指南 ……………498
附錄B Student 資料庫模式 ……………502
附錄C ANS SQL 標準 …………………506
附錄D 動手試驗部分的參考答案 ……510
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16502878/viewspace-697801/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle PL/SQL 程式設計基礎 例項OracleSQL程式設計
- oracle11g使用pl/sql developer連線asm例項OracleSQLDeveloperASM
- oracle10g 使用pl/sql developer連線asm例項OracleSQLDeveloperASM
- Oracle PL/SQL編寫PL/SQL程式碼的注意事項OracleSQL
- 【書籍】Django專案例項精解(第2版) pdf 下載Django
- Oracle PL/SQLOracleSQL
- sql join例項圖解SQL圖解
- 原創:oracle PL/SQL程式設計基礎 上OracleSQL程式設計
- 原創:oracle PL/SQL程式設計基礎 下OracleSQL程式設計
- Oracle PL/SQL INDICESOracleSQL
- oracle PL/SQL示例OracleSQL
- PL/SQL 動態sql語句例SQL
- 推薦一本人郵的厚書 Oracle PL/SQL程式設計(第5版)OracleSQL程式設計
- SQL程式設計基礎(原書第3版)SQL程式設計
- oracle pl/sql programmingOracleSQL
- PL/SQL優化一例SQL優化
- 《人件(原書第3版)》(精裝本)Peopleware: Productive Projects and TeamsProject
- 例項恢復相關原理精簡總結(原創)
- SQL觸發器例項講解SQL觸發器
- (Oracle)SQL知識與40個例項OracleSQL
- ORACLE之常用FAQ:SQL&PL/SQLOracleSQL
- pl/sql record 詳解SQL
- pl/sql 氣泡排序一例SQL排序
- Oracle 例項恢復詳解Oracle
- 好書推薦—《精通Oracle Database 12c SQL&PL/SQL程式設計》OracleDatabaseSQL程式設計
- Oracle PL/SQL塊簡介OracleSQL
- Oracle PL/SQL中EXCEPTION用法OracleSQLException
- Oracle PL/SQL 之 函式OracleSQL函式
- PL/SQL Developer 連線 OracleSQLDeveloperOracle
- oracle INDEX BY Pl/sql陣列OracleIndexSQL陣列
- 【PL/SQL】oracle建立dblinkSQLOracle
- Oracle PL/SQL之GROUP BY CUBEOracleSQL
- Oracle PL/SQL迴圈示例OracleSQL
- 【原創】Oracle 事務探索與例項(二)Oracle
- 【原創】 Oracle 事務探索與例項(一)Oracle
- 【Oracle】--PL/SQL匯入Oracle sql指令碼"傻瓜教程"OracleSQL指令碼
- SQL TOP 例項SQL
- 使用OEM,SQL*Plus,iSQL*Plus 管理Oracle例項SQLOracle