開始之前
關於本系列
這個包含6篇DB2 SQL Procedure Developer教程的系列涵蓋了SQL Procedural Language(SQL PL)的所有基本結構和方法,並展示了如何在預存程序、使用者定義函數和觸發器,包括錯誤處理和部署中使用SQL PL。本系列還描述了一些DB2 9.5 進階特性,例如樂觀鎖(optimistic locking)、分層查詢(hierarchical query)和已聲明的全域暫存資料表(declared global temporary table)。此外,本系列還提供了關於如何調用預存程序以及如何在過程和函數之間共用資料的具體內容。本系列還介紹了DB2 開發工具,包括IBM Data Studio。這些教程為該考試的每個部分都提供了堅實的基礎。但是,這些教程不應該作為準備該考試的惟一資料。
關於本教程
在本教程中,學習DB2 9.5 SQL Procedural Language,包括變數、條件、處理常式聲明、控制流程和迭代語句以及錯誤處理機制。本教程是一個包含6篇教程的系列中的第一篇教程,該系列可用於準備 DB2 9.5 SQL Procedure Developer 考試 735。
目標
在本教程中,您將:
學習 SQL PL 的基本要素。
理解如何聲明變數、條件和處理常式。
學習控制流程語句。
學習遊標處理和如何返回結果集。
理解錯誤處理機制。
先決條件
要參加 DB2 9.5 SQL Procedure Developer 考試,必須已經通過 DB2 9 Family Fundamentals 考試(Exam 730)。可以使用 “DB2 Family Fundamentals教程系列” 準備那個考試(參見 參考資料)。它是一個非常受歡迎的系列,已經協助很多人理解 DB2 產品家族的基本知識。
為了使用本教程,您應該擁有關聯式資料庫的工作原理以及資料庫和資料庫編程方面的背景知識。
系統需求
無需安裝 DB2 9.5 也可完成本教程。但是,為了充分利用本教程,您可以下載免費試用的DB2 Express-C 與本教程結合使用。
簡介
DB2 SQL Procedural Language(SQL PL)是 SQL Persistent Stored Module語言標準的一個子集。該標準結合了SQL 訪問資料的方便性和程式設計語言的流量控制。通過 SQL PL 當前的語句集合和語言特性,可以用 SQL 開發綜合的、進階的程式,例如函數、預存程序和觸發器。這樣便可以將商務邏輯封裝到易於維護的資料庫物件中,從而提高資料庫應用程式的效能。
SQL PL 支援本地和全域變數,包括聲明和賦值,還支援條件陳述式和迭代語句、控制語句的轉移、錯誤管理語句以及返回結果集的方法。這些話題將在本教程中討論。
變數聲明
SQL過程允許使用本地變數賦予和擷取 SQL 值,以支援所有SQL 邏輯。在SQL過程中,在代碼中使用本地變數之前要先進行聲明。
清單 1 中的圖示範了變數聲明的文法:
清單 1. 變數聲明的文法
.-,-----------------.
V |
|--DECLARE----SQL-variable-name-+------------------------------->
.-DEFAULT NULL------.
>--+-data-type--+-------------------+-+-------------------------|
| '-DEFAULT--constant-' |
SQL-variable-name 定義本地變數的名稱。該名稱不能與其他變數或參數名稱相同,也不能與列名相同。
圖 1 顯示了受支援的DB2 資料類型:
圖 1. DB2 資料類型