Oracle工具PL/SQL的基本語(yǔ)法
在本章中,我們將學(xué)習(xí)PL/SQL的基本語(yǔ)法,PL/SQL是塊結(jié)構(gòu)語(yǔ)言; PL/SQL程序劃分成幾個(gè)部分,并在每個(gè)部分中寫(xiě)入邏輯代碼塊。每個(gè)塊由三個(gè)子部分組成 -
- 聲明部分 - 此部分是以關(guān)鍵字
DECLARE
開(kāi)頭。這是一個(gè)可選部分,并定義了程序中要使用的所有變量,游標(biāo),子程序和其他元素。 - 可執(zhí)行命令部分 - 此部分包含在關(guān)鍵字
BEGIN
和END
之間,這是一個(gè)強(qiáng)制性部分。它由程序的可執(zhí)行PL/SQL語(yǔ)句組成。它應(yīng)該有至少一個(gè)可執(zhí)行代碼行,它可以只是一個(gè)NULL
命令,表示不執(zhí)行任何操作。 - 異常處理部分 - 此部分以關(guān)鍵字
EXCEPTION
開(kāi)頭。這是一個(gè)可選部分,它包含處理程序中錯(cuò)誤的異常。
每個(gè)PL/SQL語(yǔ)句以分號(hào)(;
)結(jié)尾。 使用BEGIN
和END
可以將PL/SQL塊嵌套在其他PL/SQL塊中。 以下是PL/SQL塊的基本結(jié)構(gòu) -
DECLARE <declarations section> BEGIN <executable command(s)> EXCEPTION <exception handling> END;
Hello World示例
DECLARE message varchar2(20):= 'Hello, World!'; BEGIN dbms_output.put_line(message); END; /
END;
行表示PL/SQL塊的結(jié)尾。要從SQL命令行運(yùn)行代碼,需要在代碼的最后一行之后鍵入/字符。當(dāng)上述代碼在SQL提示符下執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -
Hello World PL/SQL procedure successfully completed.
PL/SQL標(biāo)識(shí)符
PL/SQL標(biāo)識(shí)符是常量,變量,異常,過(guò)程,游標(biāo)和保留字。標(biāo)識(shí)符包括一個(gè)字母,可選地后跟多個(gè)字母,數(shù)字,美元符號(hào),下劃線和數(shù)字符號(hào),不得超過(guò)30
個(gè)字符。
默認(rèn)情況下,標(biāo)識(shí)符不區(qū)分大小寫(xiě)。例如,可以使用integer
或INTEGER
來(lái)表示一個(gè)數(shù)值。 不能使用保留關(guān)鍵字作為標(biāo)識(shí)符。
PL/SQL分隔符
分隔符是具有特殊含義的符號(hào)。以下是PL/SQL中的分隔符列表 -
分隔符 | 描述 |
---|---|
+ ,- , * , / |
加法,減法/負(fù),乘法,除法 |
% |
屬性綁定 |
' |
字符串分隔符 |
. |
組件選擇符 |
(,) |
表達(dá)式或列表分隔符 |
: |
主機(jī)變量指示符 |
, |
項(xiàng)目分隔符 |
" |
引用標(biāo)識(shí)符分隔符 |
= |
關(guān)系運(yùn)算符 |
@ |
遠(yuǎn)程訪問(wèn)指示符 |
; |
聲明或語(yǔ)句終止符 |
:= |
賦值運(yùn)算符 |
=> |
關(guān)聯(lián)運(yùn)算符 |
ΙΙ | 連接運(yùn)算符 |
** |
指數(shù)運(yùn)算符 |
<< , >> |
標(biāo)簽分隔符(開(kāi)始和結(jié)束) |
/* , */ |
多行注釋分隔符(開(kāi)始和結(jié)束) |
-- |
單行注釋指示符 |
.. |
范圍運(yùn)算符 |
< , > , <= , >= |
關(guān)系運(yùn)算符 |
<> , '= , ~= , ^= |
不同版本的”不等于”運(yùn)算符 |
PL/SQL注釋
程序注釋可以在編寫(xiě)的PL/SQL代碼中包含的說(shuō)明性文字,并幫助其他人閱讀源代碼。所有編程語(yǔ)言都允許某種形式的注釋。
PL/SQL支持單行和多行注釋。注釋中的所有字符都被PL/SQL編譯器忽略。 PL/SQL單行注釋以分隔符開(kāi)頭 --
(雙連字符),多行注釋由/*
和*/
括起來(lái)。
DECLARE -- variable declaration message varchar2(20):= 'Hello, World!'; BEGIN /* * PL/SQL executable statement(s) */ dbms_output.put_line(message); END; /
當(dāng)上述代碼在SQL *Plus提示符下執(zhí)行時(shí),它會(huì)產(chǎn)生以下結(jié)果 -
Hello World PL/SQL procedure successfully completed.
PL/SQL程序單元
PL/SQL單元是以下任何一個(gè) -
- PL/SQL塊
- 函數(shù)
- 包
- 包體
- 過(guò)程
- 觸發(fā)器
- 類型
- 類型體
相關(guān)文章
Oracle中update和select 關(guān)聯(lián)操作
本文主要向大家介紹了Oracle數(shù)據(jù)庫(kù)之oracle update set select from 關(guān)聯(lián)更新,通過(guò)具體的內(nèi)容向大家展現(xiàn),本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2022-01-01oracle中誤刪除表后恢復(fù)語(yǔ)句(FLASHBACK)
在操作過(guò)程中難免會(huì)誤操作,出現(xiàn)這種情況應(yīng)該怎樣解決呢?不要著急,下面與大家分享下誤刪的恢復(fù)語(yǔ)句2013-06-06[Oracle] 淺析令人抓狂的ORA-01555問(wèn)題
首先要說(shuō)明的一點(diǎn)是:ORA-01555錯(cuò)誤是一個(gè)“安全”的錯(cuò)誤,它不會(huì)造成數(shù)據(jù)丟失或損壞,只是會(huì)讓接收到該錯(cuò)誤的查詢無(wú)法繼續(xù)。以下就是對(duì)發(fā)生ORA-01555錯(cuò)誤的原因進(jìn)行了介紹,需要的朋友可以參考下2013-07-07JDBC Oracle執(zhí)行executeUpdate卡死問(wèn)題的解決方案
今天小編就為大家分享一篇關(guān)于JDBC Oracle執(zhí)行executeUpdate卡死問(wèn)題的解決方案,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2018-12-12oracle獲取上一旬的開(kāi)始時(shí)間和結(jié)束時(shí)間的實(shí)現(xiàn)函數(shù)
本文為大家介紹下oracle如何獲取上一旬的開(kāi)始時(shí)間和結(jié)束時(shí)間,實(shí)現(xiàn)函數(shù)如下,感興趣的朋友可以參考下2013-09-09