学习的主要内容
一, PL/SQL的组成
二, 条件循环
三, 循环控制
四, 异常处理
五, 记录类型
在学习PL/SQL之前我们必须要了解: 标准化的SQL每次只能执行一条语句,以";"作为结束; 数据在进行后台数据的管理的时候,需要进行一定的根据业务逻辑的需求进行较为复杂的管理,这对标准化的SQL很难实现; 这一系列的问题,PL/SQL都可以方便的解决。。。。
下面我就先看PL/SQL的组成:
-
PL/SQL是以块为单位,快之间可以嵌套
-
一个基本的PL/SQL块是由三部分组成,定义部分(declare),可执行部分(begin),异常处理部分(excetpion)。
下面就是一个简单的例子
DECLARE
X VARCHAR2(20) ;
BEGIN
--注释
X:='HELLO PL/SQL' ;
DBMS_OUTPUT.PUT_LINE(X) ;
END;
在使用SQLPlus的时候要是看不到执行的结果是要先打开SERVEROUT开关
SET SERVEROUT ON SIZE 10000
接下来我们分别介绍三个组成部分:
-
定义部分(declare):后面要使用的变量,常量,流标,和异常处理的名字都要先定义好了才能使用
-
可执行部分(begin):PL/SQL块的主体,包含可执行的语句。该部分定义了块的功能,begin开始,exception或end结束。
-
异常处理部分(exception):包含异常的处理功能,该部分是由exception开始end结束。
数据类型:number,date,boolean,char,varchar2,long,binary_integer,组合类型table,组合类型recode,LOB类型BLOB,LOB类型CLOB。
条件控制之if语句
IF 条件 THEN
<语句组1>
ELSE
<语句组2>
END IF;
IF 条件1为真 THEN
<语句组1>
ELSIF 条件2为真 THEN
<语句组2>
ELSE
<语句组3>
END IF;
CASE 条件
WHEN 条件1为真 THEN <语句组1>
WHEN 条件2为真 THEN <语句组2 >
ELSE
<语句组3>
END CASE;
下面就是一个例子
declare
v_sal emp.sal%type;
begin
select sal into v_sal from emp
where empno = 7369;
if (v_sal < 1200) then
dbms_output.put_line('low');
elsif(v_sal < 2000) then
dbms_output.put_line('middle');
else
dbms_output.put_line('high');
end if;
end;
循环控制之LOOP
LOOP<语句组1>
EXIT [WHEN <条件>];
<语句组2>
END LOOP;
declare
j binary_integer := 1;
begin
loop
dbms_output.put_line(j);
j := j + 1;
exit when (j>=11);
end loop;
end;
循环控制之WHILE
WHILE <条件> LOOP
<语句组>
END LOOP;
DECLARE
I NUMBER :=100 ;
SUMM NUMBER := 0 ;
BEGIN
WHILE I>0 LOOP
SUMM:=SUMM+I;
I:=I-1;
END LOOP;
DBMS_OUTPUT.PUT_LINE(SUMM);
END;
循环控制之FOR
FOR <循环变量> IN [REVERSE] <下界..上界>
LOOP
<语句组>
END LOOP;
DECLARE
SUMM NUMBER := 0 ;
BEGIN
FOR I IN REVERSE 1..100 LOOP
SUMM:=SUMM+I;
DBMS_OUTPUT.PUT_lINE('I is '||I);
END LOOP;
DBMS_OUTPUT.PUT_lINE(SUMM);
END;