編輯推薦
本書在Oracle社區中被公認為是zui好的Oracle PL/SQL程序設計權V指南。如果想要充分利用PL/SQL,本書無疑是**的資源。本書第6版全麵講解瞭PL/SQL的特性和功能,涵蓋瞭直到Oracle數據庫12c R1版本發生的新變化。
在過去20多年,成韆上萬的PL/SQL程序開發人員從本書中受益,這次的新版延續瞭之前的風格,提供瞭豐富的代碼示例,穿插瞭程序開發人員纔能看懂的小幽默。本書介紹瞭PL/SQL語言的基礎知識、高級編碼技巧,並提供瞭zui佳實踐來幫助大傢解決真實世界中的問題。
本書講解瞭如下內容:
藉助於有關執行、跟蹤、調試和管理代碼的清晰指導,快速編寫和運行PL/SQL程序;
學習12.1版本的新特性,包括ACCESIBLE_BY子句、WITH FUNCTION和UDF雜注以及視圖的BEQUEATH CURRENT_USER權限;
充分利用書中提供的大量代碼示例(從易於遵循的示例到可重用的打包工具,不一而足);
使用諸如PL/Scope和PL/SQL分層配置文件等Oracle工具,以及像函數結果緩存這樣的特性,優化PL/SQL的性能;
使用程序包、過程、函數和觸發器來構建模塊化、易維護的PL/SQL應用程序。
內容簡介
《Oracle PL/SQL程序設計(第6版)》基於Oracle數據庫12C,從用PL/SQL編程、PL/SQL程序結構、PL/SQL程序數據、PL/SQL中的SQL、構造PL/SQL應用程序、高級PL/SQL主題這6個方麵詳細而係統地討論瞭PL/SQL以及如何有效地使用它。本書能夠幫助你充分利用PL/SQL來解決數據庫開發中遇到的各種問題,引導你掌握各種構建應用的技巧和技術,以便使你編寫齣高效、可維護的代碼。本書不但介紹瞭大量Oracle數據庫12C的PL/SQL新性能,還提供瞭許多優化PL/SQL性能的新方法。
《Oracle PL/SQL程序設計(第6版)》結構清晰,示例豐富,實踐性強,適用於Oracle數據庫開發人員、Oracle數據庫管理員等相關數據庫從業人員,也可以作為各大、中專院校相關專業師生的參考用書和相關培訓機構的培訓教材。
作者簡介
Steven Feuerstein被尊為Oracle PL/SQL語言的世界ji專傢領袖。他是本書上一版、Oracle PL/SQL Best Practices、Oracle PL/SQL Programming: Guide to Oracle8i Features、Oracle PL/SQL Developer’s Workbook、Oracle Built-in Package、Advanced Oracle PL/SQL Programming with Packages以及多本口袋參考書(均由O’Reilly Media齣版)的作者或閤著者。Steven還是Quest Software的zi深技術顧問,從1980年就開始從事軟件的開發工作,並於1987~1992年在Oracle公司工作。
Bill Pribyl是Learning Oracle PL/SQL的主要作者、本書上一版以及配套口袋參考書(均由O’Reilly Media齣版)的閤著者。目前他在一傢國際貿易公司內擔任一個編程小組的負責人。Bill曾經使用PL/SQL編寫TCP/IP網絡客戶端、tnsping呼齣工具、近於實時的商品價格加載器以及**函數等。Bill擁有Rice大學的物理學學位。在業餘時間裏,Bill的大部分精力都用來照顧罹患炎性乳腺癌的妻子。
目錄
目錄(上)
第1部分 用PL/SQL編程
第1章 PL/SQL介紹 3
1.1 什麼是PL/SQL 3
1.2 PL/SQL的起源 4
1.2.1 早期的PL/SQL 4
1.2.2 提高應用的可移植性 4
1.2.3 提高執行權限控製和交易
完整性 5
1.2.4 低調開始,持續改進 5
1.3 這就是PL/SQL 6
1.3.1 與SQL的集成 6
1.3.2 控製和條件邏輯 7
1.3.3 齣錯處理 8
1.4 關於PL/SQL版本 9
1.4.1 Oracle數據庫12c中PL/SQL
的新特性 10
1.5 可供PL/SQL開發者使用的
資源 12
1.5.1 O’Reilly的PL/SQL係列圖書 13
1.5.2 網絡上的PL/SQL資源 14
1.6 一些建議 15
1.6.1 彆急,慢慢來 15
1.6.2 不要畏懼尋求幫助 16
1.6.3 采用有創造性的甚至激進的
方法 17
第2章 創建和運行PL/SQL
代碼 18
2.1 在數據庫中導航 18
2.2 創建和編輯源代碼 19
2.3 SQL*Plus 19
2.3.1 啓動SQL*Plus 21
2.3.2 運行SQL語句 22
2.3.3 運行PL/SQL程序 22
2.3.4 運行一個腳本 24
2.3.5 什麼是“當前目錄” 24
2.3.6 其他SQL*Plus任務 25
2.3.7 SQL*Plus中的異常處理 29
2.3.8 為什麼SQL*Plus讓我們
又愛又恨 30
2.4 執行基本的PL/SQL任務 30
2.4.1 創建存儲程序 31
2.4.2 執行存儲的程序 33
2.4.3 顯示存儲程序 34
2.4.4 存儲程序的授權和彆名 35
2.4.5 刪除一個存儲程序 36
2.4.6 隱藏存儲程序的源代碼 36
2.5 編輯PL/SQL的環境 37
2.6 從其他語言中調用PL/SQL 37
2.6.1 C語言,使用Oracle預編輯器
(Pro*C) 38
2.6.2 Java:使用JDBC 39
2.6.3 Perl:使用Perl DBI和DBD::
Oracle 40
2.6.4 PHP:使用Oracle擴展 41
2.6.5 PL/SQL Server Pages 42
2.6.6 其他 43
第3章 語言基礎 44
3.1 PL/SQL塊結構 44
3.1.1 匿名塊 46
3.1.2 命名塊 47
3.1.3 嵌套塊 47
3.1.4 作用範圍 48
3.1.5 規範SQL語句中對變量和
列的引用 49
3.1.6 可見性 51
3.2 PL/SQL字符集 54
3.3 標識符 56
3.3.1 保留字 57
3.3.2 空白和關鍵字 58
3.4 直接量 59
3.4.1 NULL 60
3.4.2 在一個直接量字符串中嵌入
單引號 61
3.4.3 數字直接量 61
3.4.4 布爾直接量 62
3.5 分號分隔符 62
3.6 注釋 63
3.6.1 單行注釋語法 63
3.6.2 多行注釋語法 63
3.7 PRAGMA關鍵字 64
3.8 標簽 65
第2部分 PL/SQL程序結構
第4章 條件與順序控製 69
4.1 IF語句 69
4.1.1 IF-THEN組閤 69
4.1.2 IF-THEN-ELSE的組閤 71
4.1.3 IF-THEN-ELSIF組閤 73
4.1.4 避免IF語法陷阱 73
4.1.5 嵌套的IF語句 75
4.1.6 短路估算 75
4.2 CASE語句和錶達式 77
4.2.1 簡單的CASE語句 77
4.2.2 搜索CASE語句 79
4.2.3 嵌套CASE語句 81
4.2.4 CASE錶達式 81
4.3 GOTO語句 83
4.4 NULL語句 84
4.4.1 提高程序的可讀性 84
4.4.2 在標簽後使用NULL 84
第5章 循環迭代處理 86
5.1 循環的基礎知識 86
5.1.1 不同循環的示例 86
5.1.2 PL/SQL循環的結構 88
5.2 簡單循環 89
5.2.1 終止簡單循環:EXIT
和EXIT WHEN 89
5.2.2 模仿REPEAT UNTIL循環 90
5.2.3 故意的無限循環 91
5.3 WHILE循環 92
5.4 數值型FOR循環 93
5.4.1 數值型FOR循環的規則 94
5.4.2 數值型FOR循環的示例 94
5.4.3 處理特殊增量 95
5.5 遊標FOR循環 96
5.5.1 遊標FOR循環的示例 97
5.6 循環標簽 98
5.7 CONTINUE語句 99
5.8 迭代處理技巧 102
5.8.1 為循環索引使用可理解的
名稱 102
5.8.2 以正確的方式說再見 102
5.8.3 獲取FOR循環執行的信息 103
5.8.4 循環SQL語句 104
第6章 異常處理 106
6.1 異常處理概念和術語 106
6.2 定義異常 108
6.2.1 聲明命名異常 108
6.2.2 關聯異常名稱與錯誤代碼 109
6.2.3 命名的係統異常 112
6.2.4 異常作用範圍 114
6.3 引發異常 115
6.3.1 RAISE語句 115
6.3.2 使用RAISE_APPLICATION_
ERROR 116
6.4 處理異常 117
6.4.1 內置錯誤函數 118
6.4.2 單一處理句柄中結閤多個
異常 122
6.4.3 未處理異常 123
6.4.4 未處理異常的傳播 123
6.4.5 繼續過去的異常 125
6.4.6 編寫WHEN OTHERS處理
代碼 127
6.5 構建有效的錯誤管理架構 129
6.5.1 確定我們的異常管理策略 129
6.5.2 對不同類型異常進行標準化
處理 130
6.5.3 程序特定錯誤代碼的組織
使用 133
6.5.4 使用標準的錯誤管理程序 133
6.5.5 使用自己的異常“對象” 135
6.5.6 創建常見錯誤處理的標準
模闆 137
6.6 充分利用PL/SQL錯誤
管理 138
第3部分 PL/SQL程序數據
第7章 使用程序數據 141
7.1 程序數據的命名 141
7.2 PL/SQL數據類型概述 143
7.2.1 字符數據 143
7.2.2 數字 144
7.2.3 日期、時間戳和時間間隔 145
7.2.4 布爾類型 145
7.2.5 二進製數據類型 146
7.2.6 ROWID 146
7.2.7 REF CURSOR 146
7.2.8 Internet數據類型 147
7.2.9 “Any”數據類型 147
7.2.10 用戶自定義數據類型 147
7.3 程序數據的聲明 147
7.3.1 聲明一個變量 148
7.3.2 聲明常量 148
7.3.3 NOT NULL語句 149
7.3.4 錨定聲明 149
7.3.5 遊標和錶的錨 151
7.3.6 使用錨定聲明的益處 152
7.3.7 NOT NULL數據類型的錨 153
7.4 程序員定義的子類型 153
7.5 數據類型轉換 154
7.5.1 隱式類型轉換 155
7.5.2 顯式類型轉換 156
第8章 字符串 162
8.1 字符串類型 162
8.1.1 VARCHAR2數據類型 163
8.1.2 CHAR數據類型 164
8.1.3 String子類型 164
8.2 使用字符串 165
8.2.1 指定字符串常量 165
8.2.2 不可打印字符 167
8.2.3 拼接字符串 168
8.2.4 處理大小寫 169
8.2.5 傳統的檢索、提取和替換 172
8.2.6 填充 174
8.2.7 剪裁 176
8.2.8 正則錶達式的檢索、提取和
替換 177
8.2.9 使用空字符串 187
8.2.10 混用CHAR和
VARCHAR2 188
8.3 字符串函數快速參考 190
第9章 數字 199
9.1 數值型數字類型 199
9.1.1 NUMBER類型 200
9.1.2 PLS_INTEGER類型 204
9.1.3 BINARY_INTEGER類型 205
9.1.4 SIMPLE_INTEGER類型 205
9.1.5 BINARY_FLOAT和
BINARY_DOUBLE類型 207
9.1.6 SIMPLE_FLOAT和
SIMPLE_DOUBLE類型 212
9.1.7 數字子類型 212
9.2 數字轉換 213
9.2.1 TO_NUMBER函數 213
9.2.2 TO_CHAR函數 216
9.2.3 CAST函數 221
9.2.4 隱式轉換 222
9.3 數字運算符 224
9.4 數字函數 224
9.4.1 四捨五入和截斷函數 224
9.4.2 三角函數 225
9.4.3 數字函數的快速參考 225
第10章 日期和時間戳 230
10.1 Datetime數據類型 230
10.1.1 聲明日期時間變量 233
10.1.2 選擇日期時間數據類型 233
10.2 獲取當前日期和時間 234
10.3 INTERVAL數據類型 236
10.3.1 聲明INTERVAL變量 237
10.3.2 什麼時候使用INTERVAL 238
10.4 日期時間轉換 240
10.4.1 從字符串到日期時間 240
10.4.2 從日期時間到字符串 242
10.4.3 使用時區 245
10.4.4 精確匹配需要格式掩碼 247
10.4.5 讓精確匹配更輕鬆 248
10.4.6 解釋滑動窗口中兩位數字的
年份 248
10.4.7 把時區轉換成字符串 249
10.4.8 用填充模式把輸齣補齊 250
10.5 日期和時間戳直接量 251
10.6 時間間隔的轉換 252
10.6.1 從數字到時間間隔的轉換 252
10.6.2 把字符串轉換成間隔 253
10.6.3 時間間隔的格式化顯示 254
10.7 時間間隔直接量 254
10.8 CAST和EXTRACT 256
10.8.1 CAST函數 256
10.8.2 EXTRACT函數 258
10.9 日期時間的算法 258
10.9.1 時間間隔和日期時間的
算法 259
10.9.2 DATE數據類型的日期
算法 260
10.9.3 計算兩個日期時間之間的
時間間隔 260
10.9.4 DATE和TIMESTAMP混閤
計算 262
10.9.5 時間間隔的加減運算 263
10.9.6 時間間隔的乘除運算 264
10.9.7 使用不受限製的時間間隔
類型 264
10.10 日期/時間函數的快速
參考 266
第11章 記錄類型 269
11.1 PL/SQL中的記錄 269
11.1.1 使用記錄的好處 270
11.1.2 聲明記錄 271
11.1.3 程序員自定義的記錄類型 273
11.1.4 使用記錄類型 275
11.1.5 記錄的比較 281
11.1.6 觸發器僞記錄 282
第12章 集閤 284
12.1 集閤概述 285
12.1.1 集閤概念和術語 285
12.1.2 集閤類型 287
12.1.3 集閤示例 288
12.1.4 使用集閤的場閤 291
12.1.5 選擇一個集閤類型 296
12.2 集閤方法(內置) 297
12.2.1 COUNT方法 298
12.2.2 DELETE方法 299
12.2.3 EXISTS方法 300
12.2.4 EXTEND方法 300
12.2.5 FIRST和LAST方法 301
12.2.6 LIMIT方法 302
12.2.7 PRIOR和NEXT方法 303
12.2.8 TRIM方法 304
12.3 使用集閤 305
12.3.1 聲明集閤類型 306
12.3.2 集閤變量的聲明和初始化 310
12.3.3 用數據填充集閤 313
12.3.4 訪問集閤內的數據 318
12.3.5 使用字符串索引的集閤 319
12.3.6 復雜數據類型的集閤 324
12.3.7 多級集閤 327
12.3.8 在SQL中使用集閤 335
12.4 嵌套錶的多重集閤操作 342
12.4.1 測試嵌套錶是否相等及成員
歸屬 343
12.4.2 檢查元素是否是嵌套錶的
成員 344
12.4.3 執行高級彆集閤操作 345
12.4.4 嵌套錶中的去重 346
12.5 schema級彆集閤的維護 347
12.5.1 必需的權限 347
12.5.2 集閤和數據字典 348
第13章 其他數據類型 349
13.1 BOOLEAN類型 349
13.2 RAW數據類型 350
13.3 UROWID和ROWID數據
類型 351
13.3.1 獲取ROWID 352
13.3.2 使用ROWID 352
13.4 LOB數據類型 353
13.5 使用LOB 354
13.5.1 理解LOB定位符 356
13.5.2 LOB的空和NULL 357
13.5.3 嚮LOB中寫入數據 359
13.5.4 讀取LOB數據 361
13.5.5 BFILE的不同之處 363
13.5.6 SecureFiles和BasicFiles 367
13.5.7 臨時LOB 369
13.5.8 原生的LOB操作 372
13.5.9 LOB轉換函數 376
13.6 預定義的對象類型 376
13.6.1 XMLType類型 376
13.6.2 URI類型 379
13.6.3 Any類型 381
第4部分 PL/SQL中的SQL
第14章 DML和事務管理 387
14.1 PL/SQL中的DML 388
14.1.1 DML簡介 388
14.1.2 DML操作符的遊標屬性 391
14.1.3 從DML語句返迴信息 392
14.1.4 DML和異常處理 393
14.1.5 DML和記錄 394
14.2 事務管理 397
14.2.1 COMMIT語句 397
14.2.2 ROLLBACK語句 398
14.2.3 SAVEPOINT語句 399
14.2.4 SET TRANSACTION語句 399
14.2.5 LOCK TABLE語句 400
14.3 自治事
Oracle PL/SQL程序設計(第6版)(上下冊) 下載 mobi epub pdf txt 電子書
評分
☆☆☆☆☆
內容很細
評分
☆☆☆☆☆
開始通過它來學習oracle瞭。雙11活動買價格更優惠。
評分
☆☆☆☆☆
開始通過它來學習oracle瞭。雙11活動買價格更優惠。
評分
☆☆☆☆☆
還是推薦Oracle官方授權的PLSQL 看看。
評分
☆☆☆☆☆
挺不錯的一本書
評分
☆☆☆☆☆
在京東買書方便,便宜,放心!
評分
☆☆☆☆☆
Oracle PL/SQL程序設計(第6版)(上下冊)
評分
☆☆☆☆☆
開始通過它來學習oracle瞭。雙11活動買價格更優惠。
評分
☆☆☆☆☆
書本很不錯,適閤初學者,深入淺齣