PL/SQL流程

9 篇文章 0 订阅

一、条件语句

SQL> declare

  2    v_eno empl.eno%type:=&empno;

  3    v_sal empl.sal%type;

  4    v_comment varchar2(25);

  5  begin

  6    select sal into v_sal from empl where eno=v_eno;

  7      if v_sal<1500 then

  8        v_comment:='Fairly less';

  9      elsif v_sal<3000 then

 10        v_comment:='A little more';

 11      else

 12        v_comment:='Lots of salary';

 13      end if;

 14    dbms_output.put_line(v_comment);

 15  end;

 16  /

输入 empno 的值:  1001

原值    2:   v_eno empl.eno%type:=&empno;

新值    2:   v_eno empl.eno%type:=1001;

Lots of salary

二、case表达式

SQL> declare

  2    v_grade char(1):=upper('&p_grade');

  3    v_appraisal varchar2(20);

  4  begin

  5    v_appraisal:=

  6    case v_grade

  7      when 'A' then 'excellent'

  8      when 'B' then 'very good'

  9      when 'C' then 'good'

 10      else 'no such grade'

 11    end;

 12    dbms_output.put_line('grade:'||v_grade||',appraisal:'||v_appraisal);

 13  end;

 14  /

输入 p_grade 的值:  a

原值    2:   v_grade char(1):=upper('&p_grade');

新值    2:   v_grade char(1):=upper('a');

grade:A,appraisal:excellent

三、循环

1loop循环

SQL> declare

  2    int number(2):=0;

  3  begin

  4    loop

  5      int:=int+1;

  6      dbms_output.put_line('int的当前值为:'||int);

  7      exit when int=10;

  8    end loop;

  9  end;

 10  /

int的当前值为:1

int的当前值为:2

int的当前值为:3

int的当前值为:4

int的当前值为:5

int的当前值为:6

int的当前值为:7

int的当前值为:8

int的当前值为:9

int的当前值为:10

2while循环

SQL> declare

  2    int number;

  3  begin

  4    int:=1;

  5    while int<=10 loop

  6      dbms_output.put_line('int的当前值为:'||int);

  7      int:=int+1;

  8    end loop;

  9  end;

 10  /

int的当前值为:1

int的当前值为:2

int的当前值为:3

int的当前值为:4

int的当前值为:5

int的当前值为:6

int的当前值为:7

int的当前值为:8

int的当前值为:9

int的当前值为:10

3、数字式循环

SQL> declare

  2    int number;

  3  begin

  4      for int in 1..10 loop

  5      dbms_output.put_line('int的当前值为:'||int);

  6      end loop;

  7  end;

  8  /

int的当前值为:1

int的当前值为:2

int的当前值为:3

int的当前值为:4

int的当前值为:5

int的当前值为:6

int的当前值为:7

int的当前值为:8

int的当前值为:9

int的当前值为:10

四、goto

SQL> declare

  2    v_counter number:=1;

  3  begin

  4    loop

  5      dbms_output.put_line('v_counter的当前值为:'||v_counter);

  6      v_counter:=v_counter+1;

  7    if v_counter>10 then

  8    goto l_endofloop;

  9    end if;

 10    end loop;

 11    <<l_endofloop>>

 12    dbms_output.put_line('v_counter的当前值为:'||v_counter);

 13  end;

 14  /

v_counter的当前值为:1

v_counter的当前值为:2

v_counter的当前值为:3

v_counter的当前值为:4

v_counter的当前值为:5

v_counter的当前值为:6

v_counter的当前值为:7

v_counter的当前值为:8

v_counter的当前值为:9

v_counter的当前值为:10

v_counter的当前值为:11

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值