Oracle扩展PL/SQL简介(二)

4.    块语句
1)    块的结构和变量声明:
DECLARE
        变量说明部分;
BEGIN
        执行语句部分;
[EXCEPTION
        例外处理部分;]
END;
2)    控制语句:
IF语句:
IF condition THEN
        Sequence_of_statements;
END IF;

IF condition THEN
        Sequence_of_statement1;
ELSE
        Sequence_of_statement2;
END IF;

IF condition1 THEN
        Sequence_of_statement1;
ELSIF condition2 THEN
        Sequence_of_statement2;
ELSIF condition3 THEN
        Sequence_of_statement3;
END IF;

举例:
declare
 v1 date:=to_date(' 2007-04-2', 'yyyy-mm-dd');
 v2 boolean;
begin
 if months_between(sysdate,v1) >5 then
v2 := true;
 dbms_output.put_line('true');
else
 v2:=false;
 dbms_output.put_line('false');
end if;
end;
/

[<<label_name>>]
CASE selector
  WHEN expression1 THEN
     sequence_of_statements1;
  WHEN expression2 THEN
     sequence_of_statements2;
   ...
  WHEN expressionn THEN
     sequence_of_statementsn;
   [ELSE sequence_of_statementsN+1;]
END [CASE [label_name];

举例:
declare
 v1 char(1):=upper('&v1');
v2 varchar2(20);
begin
 v2:=case v1
 when 'A' then 'Excellent'
when 'B' then 'Very Good'
when 'C' then 'Good'
else 'No such grade'
end;
dbms_output.put_line(chr(10) ||'level '|| v1 ||' is '||v2);
end;
/
3)    循环语句:
基本循环
LOOP
    Sequence_of_statements;
    IF condition THEN
        EXIT;
    END IF;
END LOOP;
例子:
create table t1 (c1 number(2));
---------------------------
declare
 v1 number(2):=1;
begin
loop
 insert into t1 values(v1);
 v1:=v1+1;
  exit when v1>10;
end loop;
end;
/

WHILE循环
WHILE condition LOOP
        Sequence_of_statements;
END LOOP;
举例:
declare
 v1 number(2):=1;
begin
 while v1<10 loop
  insert into t1 values(v1);
  v1:=v1+1;
 end loop;
end;
/
FOR循环
FOR counter IN lower_bound..higher_bound LOOP
        Sequence_of_statements;
END LOOP;
举例:
begin
dbms_output.put_line(chr(10)||' ----');
for v1 in reverse 1..9 loop
dbms_output.put_line(v1);
insert into t1 values(v1);
end loop;
dbms_output.put_line(' ----');
end;
/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值