無名塊:未命名的程序塊
萬州網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián)公司,萬州網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為萬州上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的萬州做網(wǎng)站的公司定做!
命名塊:指過程,函數(shù),包和觸發(fā)器
定義部分:用于定義變量,常量,游標(biāo),觸發(fā)器,復(fù)合數(shù)據(jù)類型
執(zhí)行部分:用于實(shí)現(xiàn)應(yīng)用模塊功能,包含了要執(zhí)行的PL/SQL語句和SQL語句
異常處理部分:用于處理執(zhí)行部分可能出現(xiàn)的運(yùn)行錯(cuò)誤
[DECLARE
... --定義部分]
BEGIN
... --執(zhí)行部分
[EXCEPTION
... --異常處理部分]
END;
-------------------------------------
DECLARE
a NUMBER;
BEGIN
a:=1+2;
DBMS_OUTPUT.PUT_LINE('1+2='||a);
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('出現(xiàn)異常')
END;
/
條件分支語句:
DECLARE
a1 number := 100;
a2 number := 200;
BEGIN
IF a1>a2 THEN
DBMS_OUTPUT.PUT_LINE('a1 is larger than a2');
ELSIF a1=a2 THEN
DBMS_OUTPUT.PUT_LINE('a1 is equal to a2')
ELSE
DBMS_OUTPUT.PUT_LINE('a1 is smaller than a2');
ENDIF;
END;
/
------------------------------------------------------------------------------------
DECLARE
grade CHAR(1) := 'B';
appraisal VARCHAR2(20);
BEGIN
appraisal :=
CASE grade
WHEN 'A' THEN '優(yōu)'
WHEN 'B' THEN '良'
WHEN 'C' THEN '中'
WHEN 'D' THEN '及格'
WHEN 'F' THEN '不及格'
ELSE '沒有這樣的等級(jí)'
DBMS_OUTPUT.PUT_LINE('Grade'||grade||'is'||appraisal);
END;
/
循環(huán)語句:
DECLARE
total number := 0;
salary number := 1800;
BEGIN
LOOP
total := total + salary;
EXIT WHEN total > 2500
END LOOP;
DBMS_OUTPUT.PUT_LINE('total salary is'||total);
END;
/
----------------------------------------------------------------------------
DECLARE
total number := 0;
salary number := 1800;
BEGIN
WHILE total<2500 LOOP
total := total + salary;
END LOOP;
DBMS_OUTPUT.PUT_LINE('total salary is'||total);
END;
/
---------------------------------------------------------------------------
DELARE
I INTEGER;
BEGIN
FOR I IN REVERSE 1..3 LOOP
DBMS_OUTPUT.PUT_LINE(I);
END LOOP;
END;
/