PL/SQL塊

1.簡(jiǎn)介

Oracle PL/SQL語(yǔ)言(Procedural Language/SQL)是結(jié)合了結(jié)構(gòu)化查詢(xún)與Oracle自身過(guò)程控制為一體的強(qiáng)大語(yǔ)言蒋失,PL/SQL不但支持更多的數(shù)據(jù)類(lèi)型盯桦,擁有自身的變量聲明蚯撩、賦值語(yǔ)句且警,而且還有條件灾锯、循環(huán)等流程控制語(yǔ)句。過(guò)程控制結(jié)構(gòu)與SQL數(shù)據(jù)處理能力無(wú)縫的結(jié)合形成了強(qiáng)大的編程語(yǔ)言,可以創(chuàng)建過(guò)程和函數(shù)以及程序包穴墅。

PL/SQL是一種塊結(jié)構(gòu)的語(yǔ)言霎迫,它將一組語(yǔ)句放在一個(gè)塊中斋枢,一次性發(fā)送給服務(wù)器,PL/SQL引擎分析收到PL/SQL語(yǔ)句塊中的內(nèi)容知给,把其中的過(guò)程控制語(yǔ)句由PL/SQL引擎自身去執(zhí)行瓤帚,把PL/SQL塊中的SQL語(yǔ)句交給服務(wù)器的SQL語(yǔ)句執(zhí)行器執(zhí)行。如圖所示:


image.png
2.語(yǔ)法結(jié)構(gòu)

PL/SQL 塊是構(gòu)成 PL/SQL 程序的基本單元
將邏輯上相關(guān)的聲明和語(yǔ)句組合在一起
PL/SQL 分為三個(gè)部分涩赢,聲明部分戈次、可執(zhí)行部分和異常處理部分

[DECLARE 
declarations] --聲明部分
BEGIN
executable statements--可執(zhí)行部分
[EXCEPTION 
handlers]--異常處理部分
END;

PL/SQL塊可以分為三類(lèi):
1.無(wú)名塊或匿名塊(anonymous):動(dòng)態(tài)構(gòu)造,只能執(zhí)行一次筒扒,可調(diào)用其它程序怯邪,但不能被其它程序調(diào)用。
2.命名塊(named):是帶有名稱(chēng)的匿名塊花墩,這個(gè)名稱(chēng)就是標(biāo)簽悬秉。
3.子程序(subprogram):存儲(chǔ)在數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程澄步、函數(shù)等。當(dāng)在數(shù)據(jù)庫(kù)上建立好后可以在其它程序中調(diào)用它們搂捧。
4.觸發(fā)器(Trigger):當(dāng)數(shù)據(jù)庫(kù)發(fā)生操作時(shí)驮俗,會(huì)觸發(fā)一些事件,從而自動(dòng)執(zhí)行相應(yīng)的程序允跑。
5.程序包(package):存儲(chǔ)在數(shù)據(jù)庫(kù)中的一組子程序王凑、變量定義。在包中的子程序可以被其它程序包或子程序調(diào)用聋丝。但如果聲明的是局部子程序索烹,則只能在定義該局部子程序的塊中調(diào)用該局部子程序。
例如

DECLARE
bid int := '&id';  ①
--v_isbn iweb_tbl_book.isbn%TYPE;②
--v_title iweb_tbl_book.title%TYPE;③
--v_author iweb_tbl_book.author%TYPE;
v_book iweb_tbl_book%ROWTYPE;④
BEGIN
select * into v_book 
from iweb_tbl_book
where id = bid;
--輸出結(jié)果
dbms_output.put_line('isbn:' || v_book.isbn);⑤
dbms_output.put_line('title:' || v_book.title);⑥
dbms_output.put_line('author:'|| v_book.author);
dbms_output.put_line('pagenum:'|| v_book.pagenum);
END;

--①'&id'表示從外部錄入數(shù)據(jù)ID弱睦,變量聲明賦值用 :=
也可以使用select…into語(yǔ)句對(duì)變量sname賦值百姓,要求查詢(xún)的結(jié)果必須是一行,不能是多行或者沒(méi)有記錄

SELECT ename INTO sname FROM emp WHERE empno=7934;

--②%iweb_tbl_book.title%TYPE指向表中書(shū)名列的屬性况木,好處是不需要自己再賦予屬性了
--③給變量命名時(shí)一般遵循規(guī)則v_name,給常量命名時(shí)遵循c_name
--④%ROWTYPE - 提供表示表中一行的記錄類(lèi)型
--⑤輸出結(jié)果dbms_output.put_line()
--⑥ || 用來(lái)分隔變量和字符串

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末垒拢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子火惊,更是在濱河造成了極大的恐慌求类,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件屹耐,死亡現(xiàn)場(chǎng)離奇詭異尸疆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)惶岭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)寿弱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人按灶,你說(shuō)我怎么就攤上這事症革。” “怎么了鸯旁?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵噪矛,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我羡亩,道長(zhǎng)摩疑,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任畏铆,我火速辦了婚禮雷袋,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己楷怒,他們只是感情好蛋勺,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著鸠删,像睡著了一般抱完。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刃泡,一...
    開(kāi)封第一講書(shū)人閱讀 49,760評(píng)論 1 289
  • 那天巧娱,我揣著相機(jī)與錄音,去河邊找鬼烘贴。 笑死禁添,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的桨踪。 我是一名探鬼主播老翘,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼锻离!你這毒婦竟也來(lái)了铺峭?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤汽纠,失蹤者是張志新(化名)和其女友劉穎卫键,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體疏虫,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡永罚,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年啤呼,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卧秘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡官扣,死狀恐怖翅敌,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情惕蹄,我是刑警寧澤蚯涮,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站卖陵,受9級(jí)特大地震影響遭顶,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泪蔫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一棒旗、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧撩荣,春花似錦铣揉、人聲如沸饶深。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)敌厘。三九已至,卻和暖如春朽合,著一層夾襖步出監(jiān)牢的瞬間俱两,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工曹步, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锋华,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓箭窜,卻偏偏與公主長(zhǎng)得像毯焕,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子磺樱,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • PL/SQL 這是對(duì)Oracle-SQL知識(shí)點(diǎn)詳細(xì)介紹的文章系列纳猫,其他文章如下: Oracle-SQL系列知識(shí)點(diǎn)(...
    GuaKin_Huang閱讀 7,022評(píng)論 0 14
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類(lèi)相關(guān)的語(yǔ)法竹捉,內(nèi)部類(lèi)的語(yǔ)法芜辕,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法块差,線(xiàn)程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,598評(píng)論 18 399
  • 如果不是為了應(yīng)付時(shí)間逼宮 如果不是為了本性和欲望 如果不是為了相互取暖 人們其實(shí)不用結(jié)婚的 畢竟在這個(gè)牽個(gè)手就能上...
    幻夢(mèng)邪魂閱讀 435評(píng)論 4 1
  • 曾經(jīng)我來(lái)過(guò) 來(lái)的時(shí)候遇到如花的你 如今我走了 走的時(shí)候乞求溫柔的你 現(xiàn)在的你我 怎樣去面對(duì)無(wú)知的過(guò)錯(cuò) 背叛讓彼此傷...
    念江子閱讀 171評(píng)論 4 3
  • 用心生活侵续,處處是驚喜! 用心陪伴孩子成長(zhǎng)憨闰,就是一場(chǎng)自我修煉的過(guò)程状蜗!或許,你不認(rèn)同我鹉动,但是轧坎,我相信在將來(lái)某一天,你終...
    lily的姐姐閱讀 190評(píng)論 0 0