金倉數據庫KingbaseES PL/SQL 編程
張德珍、張俊、曹志英、杜勝、馮玉
相關主題
商品描述
本書基於金倉數據庫管理系統KingbaseES V9版本,採用“理論+實踐”的形式編寫。在全面介紹KingbaseES PL/SQL基本知識的基礎上,詳細講解了PL/SQL開發的所有功能模塊、方法和技巧,包括PL/SQL中的靜態SQL語句、事務處理、動態SQL語句、異常處理、輸入與輸出、子程序、用戶自定義對象、用戶自定義聚集函數、程序包、觸發器、代碼保護、調試、調度與執行等主要內容。 本書以一個簡化的在線購物平臺數據庫為例,將理論知識翔實地融入實踐當中,以大量應用實例驗證、解讀,讓讀者體驗完整的項目實操過程。此外,考慮與Oracle及PostgreSQL數據庫的兼容性,協助數據庫開發人員用好國產數據庫,提高國產數據庫在國民經濟各領域的應用範圍,本書還作了差異性比較和轉換操作。 本書適用於KingbaseES數據庫開發人員、KingbaseES數據庫管理員等相關數據庫從業人員,也可作為大中專院校電腦科學與技術、軟件工程等相關專業師生的參考用書,還可作為培訓機構的培訓教材。
目錄大綱
目錄
第1章KingbaseES PL/SQL概述1
1.1PL/SQL概述1
1.1.1PL/SQL的優點1
1.1.2PL/SQL的特性2
1.1.3PL/SQL的結構4
1.2創建與運行PL/SQL代碼5
1.2.1KSQL6
1.2.2KStudio9
1.3PL/SQL的運行機制10
1.3.1PL/SQL引擎10
1.3.2PL/SQL單元與編譯參數12
1.4案例數據庫介紹14
1.4.1SeaMart的ER圖及其表結構14
1.4.2創建表19
1.5使用金倉在線幫助文檔23
第2章PL/SQL程序結構24
2.1PL/SQL塊結構24
2.2PL/SQL聲明段27
2.2.1數據類型27
2.2.2變量和常量的聲明28
2.3基本執行語句29
2.4條件選擇語句32
2.4.1IF32
2.4.2CASE36
2.5循環語句38
2.5.1基本循環語句39
2.5.2FOR LOOP語句41
2.5.3WHILE LOOP語句43
2.5.4FOREACH語句44
2.6獲取執行狀態信息45
2.6.1獲取結果狀態和執行位置信息45
2.6.2錯誤和消息47
第3章PL/SQL的復合數據類型49
3.1集合類型49
3.1.1關聯數組50
3.1.2可變數組52
3.1.3嵌套表53
3.1.4集合的構造函數56
3.1.5集合變量賦值57
3.1.6多維集合59
3.1.7集合的比較60
3.1.8集合方法61
3.2記錄類型65
3.2.1記錄類型概述65
3.2.2聲明記錄類型65
3.2.3使用記錄類型66
目錄
第4章PL/SQL中的靜態SQL語句69
4.1靜態SQL語句概述69
4.1.1靜態SQL語句類型69
4.1.2PL/SQL中的SELECT語句70
4.1.3PL/SQL中的DML語句73
4.2游標75
4.2.1游標概念75
4.2.2隱式游標76
4.2.3聲明和定義顯式游標78
4.2.4打開和關閉顯式游標79
4.2.5使用顯式游標獲取數據79
4.2.6顯式游標查詢中的變量84
4.2.7當顯式游標查詢需要列別名時86
4.2.8接收參數的顯式游標87
4.2.9顯式游標屬性90
4.3游標變量93
4.3.1創建游標變量94
4.3.2打開和關閉游標變量95
4.3.3使用游標變量獲取數據95
4.3.4為游標變量賦值97
4.3.5游標變量查詢中的變量98
4.3.6游標變量屬性100
4.3.7游標變量作為子程序參數100
4.4批量處理102
第5章事務處理109
5.1事務處理概述109
5.2事務處理語句109
5.2.1COMMIT語句109
5.2.2ROLLBACK語句109
5.2.3SET TRANSACTION 語句110
5.3自治事務111
5.3.1聲明自治事務113
5.3.2從SQL中調用自治函數115
第6章動態SQL語句116
6.1動態SQL語句概述116
6.2Native dynamic SQL118
6.2.1EXECUTE IMMEDIATE語句119
6.2.2OPEN FOR、FETCH和CLOSE語句124
6.2.3重復的占位符名稱125
6.3DBMS_SQL包127
6.3.1DBMS_SQL包中的常用方法127
6.3.2DBMS_SQL包操作流程128
6.3.3其他常用DBMS_SQL方法131
6.4SQL註入136
6.4.1SQL註入技術136
6.4.2防範SQL註入139
第7章異常處理142
7.1異常處理的概念和術語142
7.1.1異常種類143
7.1.2異常處理程序的優點143
7.2定義異常145
7.2.1系統預定義異常145
7.2.2用戶自定義異常147
7.2.3重新聲明預定義的異常148
7.3引發異常149
7.3.1顯式觸發異常149
7.3.2異常傳播153
7.3.3未處理的異常160
7.4處理異常161
7.4.1處理異常的措施161
7.4.2檢索異常信息162
7.4.3異常捕獲165
7.4.4獲取異常狀態信息168
7.4.5檢查斷言169
第8章PL/SQL中的輸入與輸出171
8.1顯示信息(DBMS_OUTPUT)171
8.1.1啟用DBMS_OUTPUT171
8.1.2向緩沖區輸入信息172
8.1.3從緩沖區讀取信息173
8.2文件讀寫174
8.2.1啟動UTL_FILE174
8.2.2UTL_FILE方法174
8.3使用基於Web的數據(http)177
8.3.1UTL_HTTP數據類型177
8.3.2UTL_HTTP方法178
8.3.3http數據類型181
8.3.4http方法183
第9章PL/SQL子程序187
9.1子程序概述187
9.1.1子程序的分類187
9.1.2子程序的優點187
9.2獨立子程序188
9.2.1子程序結構188
9.2.2創建函數189
9.2.3創建存儲過程190
9.2.4支持的參數192
9.2.5調用與使用195
9.2.6支持的返回值類型197
9.3嵌套子程序200
9.3.1概述200
9.3.2聲明和定義201
9.3.3支持的參數203
9.3.4調用與變量204
9.4子程序重載205
9.5表函數206
9.5.1結果返回行集合206
9.5.2結果返回集合數據類型209
第10章用戶自定義對象211
10.1用戶自定義對象概述211
10.2創建用戶自定義對象211
10.2.1對象類型211
10.2.2對象實例215
10.3在PL/SQL中使用自定義對象216
10.3.1定義對象216
10.3.2初始化對象216
10.3.3調用構造函數217
10.3.4調用MEMBER方法和STATIC方法217
10.3.5對象表的DML操作218
10.4與Oracle數據庫中對象類型的差異219
第11章用戶自定義聚集函數222
11.1用戶自定義聚集函數概述222
11.1.1聚集函數222
11.1.2創建用戶自定義聚集函數223
11.2用戶自定義聚集函數的運用224
11.2.1場景數據224
11.2.2創建用戶自定義聚集函數225
11.2.3用戶自定義聚集函數的使用226
11.2.4查看用戶自定義聚集函數信息227
11.3KingbaseES與Oracle中創建聚集函數的差異228
第12章程序包232
12.1程序包概述232
12.1.1包的概念232
12.1.2包的優點232
12.1.3系統內置包233
12.2創建程序包233
12.2.1包的組成233
12.2.2包的創建235
12.3程序包的使用239
12.3.1包元素的調用規則239
12.3.2包數據240
12.3.3包游標240
12.3.4查看程序包信息242
第13章觸發器247
13.1觸發器簡介247
13.1.1觸發器的概念247
13.1.2觸發器的作用248
13.1.3觸發器的種類248
13.2DML觸發器248
13.2.1DML觸發器的用途248
13.2.2創建DML觸發器248
13.2.3觸發器體250
13.2.4INSTEAD OF觸發器253
13.2.5觸發器觸發的順序254
13.3事件觸發器254
13.3.1事件觸發器概述254
13.3.2創建事件觸發器255
13.4觸發器設計註意事項255
13.5觸發器管理256
13.5.1禁用與啟用觸發器256
13.5.2修改、重編譯與刪除觸發器257
13.5.3觸發器信息查詢257
第14章PL/SQL的代碼加密259
14.1PL/SQL代碼加密概述259
14.2Wrapper260
14.2.1使用PL/SQL Wrapper實用程序260
14.2.2PL/SQL Wrapper 實用程序的輸入與輸出文件260
14.2.3PL/SQL Wrapper加密的優點和局限性261
14.2.4示例261
14.3DBMS_DDL包的使用264
14.3.1使用DBMS_DDL子程序264
14.3.2DBMS_DDL加密的局限性264
14.3.3示例264
第15章PL/SQL的調試266
15.1PL/SQL的執行跟蹤266
15.1.1DBMS_UTILITY267
15.1.2性能監控271
15.2PL/SQL調試器277
15.2.1函數/存儲過程調試277
15.2.2觸發器調試283
15.2.3程序包調試285
第16章PL/SQL任務的調度與執行290
16.1使用DBMS_JOB包管理任務290
16.1.1任務的創建291
16.1.2任務的執行296
16.1.3任務的刪除297
16.2使用DBMS_SCHEDULER包管理任務299
16.2.1任務的創建299
16.2.2任務的執行304
16.2.3任務的刪除304
16.3使用KStudio管理任務307
16.3.1任務的創建307
16.3.2任務的執行308
16.3.3任務的刪除309
參考文獻312