Oracle Database 12c PL/SQL開發指南(第7版)

Oracle Database 12c PL/SQL開發指南(第7版)
定價:828
NT $ 654
  • 作者:(美)麥克勞克林
  • 出版社:清華大學出版社
  • 出版日期:2015-08-01
  • 語言:簡體中文
  • ISBN10:7302403643
  • ISBN13:9787302403647
  • 裝訂:965頁 / 21 x 14.8 x 1.5 cm / 普通級 / 1-1
 

內容簡介

用於開發、調試和管理健壯的數據庫程序。本書包含了詳細的案例以及來自於Oracle ACE分享的專家策略,闡述了如何獲取和處理數據、編寫PL/SQL語句、執行高效的查詢、結合使用PHP和Java以及處理動態SQL。這本由Oracle出版的綜合性指南完整地覆蓋了代碼的測試、安全以及面向對象編程技術。

麥克勞克林(Michael McLaughlin),是愛達荷州楊百翰大學商業通信學院計算機信息技術系的教授。他也是McLaughlin Software,LLC的創始人,同時活躍於猶他Oracle用戶組。他還是其他8本OraclePress圖書的作者,例如《Oracle Database 11g&MySQL 5.6開發手冊》、(Oracle Database 11g PL/SQL程序設計》和(Oracle Database 11g PL/SQL編程實戰》(清華大學出版社引進並出版)。Michael曾在Oracle公司工作過8年多,從事顧問、開發和支持工作。在Oracle時,他領導了用於Oracle Applications 11i(11.5.8和11.5.9)的直接路徑CRM升級的版本工程,還領導了PL/SQL的向前兼容性測試,對象是Oracle Applications 11i和Oracle Database 9i。
 

目錄

第Ⅰ部分 Oracle PL/SQL
第1章 Oracle PL/SQL程序開發概覽 3
1.1 PL/SQL的歷史和背景 4
1.2 Oracle開發架構 6
1.2.1 數據庫 7
1.2.2 PL/SQL語言 8
1.2.3 Oracle處理架構 10
1.2.4 兩層模型 11
1.2.5 n層模型 12
1.3 本章小結 13
1.4 精熟測驗 13
第2章 新特性 15
2.1 SQL新特性 16
2.1.1 用數據目錄DIRECTORY限定LIBRARY對象 16
2.1.2 使用有效時間(VT)來定義表 17
2.1.3 增強的Oracle原生LEFT OUTER JOIN語法 18
2.1.4 基於序列的列的默認值 18
2.1.5 顯式NULL插入的默認值 19
2.1.6 標識列 20
2.1.7 STRING和RAW類型大小限制的增加 21
2.1.8 將SQL語句的結果傳遞給外部程序 21
2.1.9 查詢行限制和偏移的原生SQL支持 23
2.1.10 MySQL應用程序的Oracle數據庫驅動程序 26
2.1.11 SQL CROSS APPLY、OUTER APPLY和LATERAL 26
2.1.12 BEQUEATH CURRENT_USER視圖 28
2.2 PL/SQL新特性 28
2.2.1 調用者權限函數的緩存 29
2.2.2 添加PL/SQL程序單元調用者到白名單 29
2.2.3 PL/SQL類型的原生客戶端API支持 30
2.2.4 新的PL/SQL包utl_call_stack 30
2.2.5 dbms_utility包添加了expand_sql_txt子程序 30
2.2.6 dbms_sql包為parse過程添加了新的模式 32
2.2.7 SQL WITH子句中的PL/SQL函數 32
2.2.8 SQL中允許PL/SQL特定的數據類型 33
2.2.9 隱式的REF CURSOR參數綁定 36
2.3 支持腳本 36
2.4 本章小結 36
2.5 精熟測驗 36
第3章 PL/SQL基礎知識 39
3.1 塊結構 40
3.1.1 執行塊 40
3.1.2 基本塊結構 41
3.1.3 聲明塊 43
3.1.4 異常塊 44
3.2 塊中變量的行為 45
3.2.1 匿名塊 45
3.2.2 嵌套匿名塊 49
3.2.3 局部命名塊 51
3.2.4 存儲命名塊 54
3.3 基本標量和復合數據類型 56
3.3.1 標量數據類型 56
3.3.2 屬性和表的錨定 58
3.3.3 復合數據類型 60
3.4 控制結構 72
3.4.1 條件結構 72
3.4.2 迭代結構 74
3.5 異常 81
3.5.1 用戶自定義異常 82
3.5.2 動態的用戶自定義異常 84
3.6 批量操作 84
3.7 函數、過程和包 86
3.7.1 函數 87
3.7.2 過程 88
3.7.3 包 90
3.8 事務作用域 94
3.8.1 單事務作用域 95
3.8.2 多事務作用域 96
3.9 數據庫觸發器 96
3.10 本章小結 97
3.11 精熟測驗 97
第4章 語言基本知識 99
4.1 詞匯單元 99
4.1.1 分隔符 100
4.1.2 標識符 103
4.1.3 字面值 105
4.1.4 注釋 106
4.2 變量和數據類型 107
4.2.1 變量數據類型 108
4.2.2 標量數據類型 111
4.2.3 大對象 125
4.2.4 復合數據類型 126
4.2.5 系統引用游標 130
4.3 本章小結 132
4.4 精熟測驗 132
第5章 控制結構 134
5.1 條件語句 135
5.1.1 IF語句 141
5.1.2 CASE語句 145
5.1.3 條件編譯語句 147
5.2 迭代語句 150
5.2.1 簡單循環語句 150
5.2.2 FOR循環語句 156
5.2.3 WHILE循環語句 158
5.3 游標結構 161
5.3.1 隱式游標 162
5.3.2 顯式游標 166
5.4 批語句 177
5.4.1 BULK COLLECT INTO語句 178
5.4.2 FORALL語句 182
5.5 支持腳本 187
5.6 本章小結 187
5.7 精熟測驗 187
第6章 集合 189
6.1 集合介紹 190
6.2 對象類型:變長數組和表集合 192
6.2.1 變長數組集合 192
6.2.2 表集合 195
6.3 關聯數組 209
6.4 Oracle集合API 216
6.4.1 COUNT方法 218
6.4.2 DELETE方法 219
6.4.3 EXISTS方法 220
6.4.4 EXTEND方法 221
6.4.5 FIRST方法 222
6.4.6 LAST方法 222
6.4.7 LIMIT方法 223
6.4.8 NEXT方法 223
6.4.9 PRIOR方法 224
6.4.10 TRIM方法 224
6.5 支持腳本 226
6.6 本章小結 226
6.7 精熟測驗 226
第7章 錯誤管理 228
7.1 異常類型和作用域 229
7.1.1 編譯時錯誤 230
7.1.2 運行時錯誤 232
7.2 異常管理內置函數 238
7.3 用戶定義的異常 240
7.3.1 聲明用戶定義的異常 240
7.3.2 動態的用戶定義的異常 242
7.4 異常堆棧函數 245
7.5 支持腳本 250
7.6 本章小結 250
7.7 精熟測驗 251

第Ⅱ部分 PL/SQL編程
第8章 函數和過程 255
8.1 函數和過程架構 256
8.2 事務作用域 262
8.2.1 調用子例程 263
8.2.2 位置表示法 264
8.2.3 命名表示法 264
8.2.4 混合表示法 264
8.2.5 排除表示法 264
8.2.6 SQL調用表示法 265
8.3 函數 265
8.3.1 函數模型選擇 267
8.3.2 創建選項 267
8.3.3 按值傳遞函數 279
8.3.4 按引用傳遞函數 291
8.4 過程 294
8.4.1 按值傳遞過程 295
8.4.2 按引用傳遞過程 297
8.5 支持腳本 299
8.6 本章小結 300
8.7 精熟測驗 300
第9章 包 302
9.1 包架構 303
9.2 包規范 308
9.2.1 原型特性 309
9.2.2 連續可重用預編譯器指令 311
9.2.3 變量 312
9.2.4 類型 314
9.2.5 組件:函數與過程 316
9.3 包主體 318
9.3.1 原型特性 318
9.3.2 變量 320
9.3.3 類型 322
9.3.4 組件:函數與過程 323
9.4 定義者與調用者權限模型 326
9.5 管理數據庫目錄中的包 329
9.5.1 查找、驗證和描述包 329
9.5.2 檢查依賴關系 330
9.5.3 比較驗證方法:時間戳與簽名 331
9.6 本章小結 332
9.7 精熟測驗 332
第10章 大對象 334
10.1 使用內部存儲的LOB類型 335
10.1.1 低於32K的LOB賦值 335
10.1.2 高於32K的LOB賦值 337
10.2 將文件讀入內部存儲的列 345
10.2.1 將本地文件讀入CLOB或NCLOB列 346
10.2.2 將本地文件讀入BLOB列 348
10.2.3 通過Web頁面處理LOB 351
10.3 使用二進制文件(BFILE) 358
10.3.1 創建和使用虛擬目錄 359
10.3.2 讀取規范路徑名與文件名 365
10.4 了解dbms_lob包 371
10.4.1 包常量 371
10.4.2 包異常 373
10.4.3 打開與關閉方法 373
10.4.4 操作方法 374
10.4.5 內省方法 380
10.4.6 BFILE方法 384
10.4.7 臨時LOB方法 385
10.4.8 安全鏈接方法 387
10.5 支持腳本 390
10.5.1 從LONG轉換為CLOB的腳本 390
10.5.2 管理來自於文件系統的LOB 390
10.5.3 通過Web管理CLOB和BLOB LOB 390
10.5.4 通過Web管理
BFILE LOB 390
10.6 本章小結 391
10.7 精熟測驗 391
第11章 對象類型 393
11.1 對象基礎知識 396
11.1.1 聲明對象類型 396
11.1.2 實現對象主體 399
11.1.3 對象類型白名單 403
11.1.4 getter和setter 404
11.1.5 靜態成員方法 406
11.1.6 比較對象 408
11.2 繼承和多態 415
11.2.1 聲明子類 416
11.2.2 實現子類 417
11.2.3 類型演變 421
11.3 實現對象類型集合 422
11.3.1 聲明對象類型集合 422
11.3.2 實現對象類型集合 423
11.4 支持腳本 426
11.5 本章小結 426
11.6 精熟測驗 426
第12章 觸發器 429
12.1 觸發器簡介 430
12.2 數據庫觸發器架構 432
12.3 數據定義語言觸發器 435
12.3.1 事件屬性函數 437
12.3.2 構建DDL觸發器 448
12.4 數據操作語言觸發器 450
12.4.1 語句級觸發器 451
12.4.2 行級觸發器 453
12.5 復合觸發器 460
12.6 Instead of觸發器 464
12.7 系統和數據庫事件觸發器 468
12.8 觸發器限制 470
12.8.1 最 大觸發器尺寸 470
12.8.2 SQL語句 470
12.8.3 LONG和LONG RAW數據類型 471
12.8.4 變異表 471
12.8.5 系統觸發器 472
12.9 支持腳本 473
12.10 本章小結 473
12.11 精熟測驗 473
第13章 動態SQL 475
13.1 動態SQL架構 476
13.2 本地動態SQL(NDS) 477
13.2.1 動態語句 478
13.2.2 帶輸入的動態語句 481
13.2.3 帶輸入和輸出的動態語句 483
13.2.4 帶未知數量的輸入的動態語句 486
13.3 dbms_sql包 488
13.3.1 動態語句 489
13.3.2 帶輸入變量的動態語句 492
13.3.3 帶輸入變量和固定輸出的動態語句 494
13.3.4 帶輸入和輸出變量的動態語句 498
13.3.5 dbms_sql包定義 503
13.4 支持腳本 516
13.5 本章小結 517
13.6 精熟測驗 517

第Ⅲ部分 附錄和術語表
附錄A Oracle數據庫入門 521
A.1 Oracle數據庫架構 522
A.2 啟動和停止Oracle
Database 12c服務器 528
A.2.1 UNIX或Linux操作 529
A.2.2 Microsoft Windows操作 533
A.3 啟動和停止Oracle偵聽器 534
A.4 多版本並發控制 539
A.4.1 數據事務 540
A.4.2 DML鎖定和隔離控制 542
A.5 定義者權限和調用者權限 543
A.5.1 定義者權限 544
A.5.2 調用者權限 544
A.6 SQL交互和批處理 545
A.6.1 SQL*Plus命令行界面 545
A.6.2 Oracle SQL Developer界面 564
A.7 數據庫管理員 570
A.7.1 配置用戶 570
A.7.2 使用數據庫約束 577
A.7.3 安全加固 586
A.7.4 數據管理 595
A.8 SQL調優 597
A.8.1 EXPLAIN PLAN語句 598
A.8.2 DBMS_XPLAN包 599
A.9 SQL跟蹤 603
A.9.1 跟蹤會話狀態 603
A.9.2 將原始跟蹤文件轉換為可讀跟蹤文件 605
A.10 本附錄小結 606
附錄B SQL入門 607
B.1 Oracle SQL數據類型 610
B.2 數據定義語言(DDL) 614
B.2.1 CREATE語句 615
B.2.2 ALTER語句 675
B.2.3 RENAME語句 691
B.2.4 DROP語句 691
B.2.5 TRUNCATE語句 694
B.2.6 COMMENT語句 694
B.3 數據管理語言(DML) 694
B.3.1 符合ACID的事務 695
B.3.2 INSERT語句 698
B.3.3 UPDATE語句 712
B.3.4 DELETE語句 724
B.3.5 MERGE語句 728
B.4 事務控制語言(TCL) 735
B.5 查詢:SELECT語句 736
B.5.1 返回列或者返回列運算結果的查詢 738
B.5.2 聚合查詢 751
B.5.3 選擇性返回列或結果的查詢 756
B.5.4 聯接結果 765
B.5.5 數據的聯接 767
B.5.6 集合的聯接 775
B.6 本附錄小結 778
附錄C SQL內置函數 779
C.1 字符函數 780
C.1.1 ASCII函數 780
C.1.2 ASCIISTR函數 780
C.1.3 CHR函數 781
C.1.4 CONCAT函數 781
C.1.5 INITCAP函數 782
C.1.6 INSTR函數 782
C.1.7 LENGTH函數 783
C.1.8 LOWER函數 783
C.1.9 LPAD函數 784
C.1.10 LTRIM函數 784
C.1.11 REPLACE函數 785
C.1.12 REVERSE函數 785
C.1.13 RPAD函數 785
C.1.14 RTRIM函數 786
C.1.15 UPPER函數 786
C.2 數據類型轉換函數 787
C.2.1 CAST函數 787
C.2.2 CONVERT函數 789
C.2.3 TO_CHAR函數 790
C.2.4 TO_CLOB函數 792
C.2.5 TO_DATE函數 792
C.2.6 TO_LOB函數 793
C.2.7 TO_NCHAR函數 794
C.2.8 TO_NCLOB函數 795
C.2.9 TO_NUMBER函數 795
C.3 日期—時間轉換函數 796
C.3.1 ADD_MONTHS函數 796
C.3.2 CURRENT_DATE函數 796
C.3.3 CURRENT_TIMESTAMP函數 796
C.3.4 DBTIMEZONE函數 797
C.3.5 EXTRACT函數 797
C.3.6 FROM_TZ函數 798
C.3.7 LAST_DAY函數 798
C.3.8 LOCALTIMESTAMP函數 799
C.3.9 MONTHS_BETWEEN函數 799
C.3.10 NEW_TIME函數 799
C.3.11 ROUND函數 800
C.3.12 SYSDATE函數 801
C.3.13 SYSTIMESTAMP函數 801
C.3.14 TO_CHAR(date)函數 801
C.3.15 TO_DSINTERVAL函數 802
C.3.16 TO_TIMESTAMP函數 803
C.3.17 TO_TIMESTAMP_TZ函數 803
C.3.18 TO_YMINTERVAL函數 804
C.3.19 TRUNC(date)函數 804
C.3.20 TZ_OFFSET函數 804
C.4 集合管理函數 805
C.4.1 CARDINALITY函數 805
C.4.2 COLLECT函數 805
C.4.3 POWERMULTISET函數 809
C.4.4 POWERMULTISET_BY_CARDINALITY函數 809
C.4.5 SET函數 810
C.5 集合運算符 810
C.5.1 CARDINALITY運算符 812
C.5.2 EMPTY運算符 812
C.5.3 MULTISET運算符 812
C.5.4 MULTISET EXCEPT運算符 813
C.5.5 MULTISET INTERSECT運算符 814
C.5.6 MULTISET UNION運算符 814
C.5.7 SET運算符 815
C.5.8 SUBMULTISET OF運算符 816
C.6 數字函數 816
C.6.1 CEIL函數 817
C.6.2 FLOOR函數 817
C.6.3 MOD函數 817
C.6.4 POWER函數 819
C.6.5 REMAINDER函數 820
C.6.6 ROUND函數 821
C.7 錯誤報告函數 821
C.7.1 SQLCODE函數 821
C.7.2 SQLERRM函數 822
C.8 雜項函數 823
C.8.1 BFILENAME函數 824
C.8.2 COALESCE函數 826
C.8.3 DECODE函數 826
C.8.4 DUMP函數 827
C.8.5 EMPTY_BLOB函數 828
C.8.6 EMPTY_CLOB函數 830
C.8.7 GREATEST函數 831
C.8.8 LEAST函數 833
C.8.9 NANVL函數 834
C.8.10 NULLIF函數 835
C.8.11 NVL函數 836
C.8.12 SYS_CONTEXT函數 836
C.8.13 TABLE函數 839
C.8.14 TREAT函數 842
C.8.15 USERENV函數 843
C.8.16 VSIZE函數 844
C.9 本附錄小結 844
附錄D PL/SQL內置程序包和類型 845
D.1 Oracle Database 11g和12c的新程序包 846
D.2 程序包使用示例 852
D.2.1 DBMS_APPLICATION_INFO示例 853
D.2.2 DBMS_COMPARISON 858
D.2.3 DBMS_CRYPTO 863
D.2.4 DBMS_FGA 866
D.2.5 案例研究:查詢工具 867
D.3 支持腳本 874
D.4 本附錄小結 874
附錄E 正則表達式入門 875
E.1 正則表達式簡介 876
E.1.1 字符類 876
E.1.2 校准類 880
E.1.3 元字符 880
E.1.4 元序列 880
E.1.5 字面值 881
E.2 正則表達式實現 881
E.2.1 REGEXP_COUNT函數 882
E.2.2 REGEXP_INSTR函數 885
E.2.3 REGEXP_LIKE函數 886
E.2.4 REGEXP_REPLACE函數 887
E.2.5 REGEXP_SUBSTR函數 889
E.3 支持腳本 890
E.4 本附錄小結 890
附錄F 包裝PL/SQL代碼入門 891
F.1 包裝PL/SQL的限制 892
F.1.1 PL/SQL的wrap實用程序的局限性 892
F.1.2 DBMS_DDL.WRAP函數的限制 892
F.2 使用wrap命令行實用程序 893
F.3 使用DBMS_DDL命令行實用程序 893
F.3.1 WRAP函數 893
F.3.2 CREATE_WRAPPED過程 898
F.4 本附錄小結 899
附錄G PL/SQL分層的配置文件入門 900
G.1 配置架構 901
G.2 收集配置文件數據 902
G.3 配置文件數據 905
G.3.1 讀取原始輸出 905
G.3.2 定義PL/SQL配置文件表 907
G.3.3 查詢分析數據 909
G.4 使用plshprof命令行實用程序 910
G.5 支持腳本 912
G.6 本附錄小結 912
附錄H PL/SQL保留字和關鍵字 913
附錄I 精熟測驗答案 927
術語表 951
 

前言

本書介紹如何使用PL/SQL編程語言。書中包含很多例子和技術,可以幫助創建穩健的以數據庫為中心的應用程序。附錄A介紹Applications DBA或者開發人員應該了解的基本信息,例如啟動和停止Oracle數據庫及偵聽器、使用SQL*Plus作為命令行接口、使用SQL Developer作為免費的跨平台的GUI界面,以及SQL調優的技術。附錄B、C和D介紹如何編寫SQL、使用SQL內置函數,以及使用PL/SQL內置包。其余附錄介紹如何使用正則表達式函數、包裝PL/SQL代碼、對PL/SQL使用分層的配置文件,並了解保留字和關鍵字。

對於作者來說,前言通常是最 后或最 初撰寫。與前面版本的策略不同,這次我選擇在開始時寫前言,這幫助我始終如一地按照計划完成本書。正如我在致謝中說過的,項目成員也幫助我理清了本書的內容,而且他們的才能是出版這一本好書的關鍵。
網路書店 類別 折扣 價格
  1. 新書
    79
    $654