PLSQL 的定義

PL / SQL(過程語言/結構化查詢語言)是 Oracle Corporation 對 SQL 和 Oracle 關聯式資料庫的過程擴充套件。PL / SQL 在 Oracle 資料庫(自版本 7),TimesTen 記憶體資料庫(自版本 11.2.1)和 IBM DB2(自版本 9.7)開始提供。

PL / SQL 中的基本單元稱為塊,它由三部分組成:宣告部分,可執行部分和異常構建部分。

DECLARE
   <declarations section>
BEGIN
   <executable command(s)>
EXCEPTION
   <exception handling>
END;

宣告 - 此部分以關鍵字 DECLARE 開頭。它是一個可選部分,定義了程式中使用的所有變數,遊標,子程式和其他元素。

可執行命令 - 此部分包含在關鍵字 BEGIN 和 END 之間,它是必需部分。它由程式的可執行 PL / SQL 語句組成。它應該至少有一個可執行的程式碼行,它可能只是一個 NULL 命令,表示不應該執行任何操作。

異常處理 - 此部分以關鍵字 EXCEPTION 開頭。此部分也是可選的,包含處理程式錯誤的異常。

每個 PL / SQL 語句都以分號(;)結尾。PL / SQL 塊可以使用 BEGIN 和 END 巢狀在其他 PL / SQL 塊中。

在匿名塊中,只需要塊的可執行部分,其他部分不是必需的。下面是簡單匿名程式碼的示例,除了執行沒有錯誤報告之外,它不執行任何操作。

BEGIN
    NULL;
END;
/ 

缺少可執行的指令會導致錯誤,因為 PL / SQL 不支援空塊。例如,以下程式碼的執行會導致錯誤:

BEGIN
END;
/ 

應用程式將引發錯誤:

END;
*
ERROR at line 2:
ORA-06550: line 2, column 1:
PLS-00103: Encountered the symbol "END" when expecting one of the following:
( begin case declare exit for goto if loop mod null pragma
raise return select update while with <an identifier>
<a double-quoted delimited-identifier> <a bind variable> <<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge

符號“*”在關鍵字 END 下方的行中表示以此塊結尾的塊為空或構造不良。每個執行塊都需要執行指令,即使它什麼都不做,就像在我們的示例中一樣。