第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/S與編譯參數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素的調用規則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