pl/sql 编程(六)
- 变量常量的声明
v_var varchar2(20) :='变量'; v_var2 varchar2(10) not null default '非空变量2'; v_constant constant varchar2(100) := '常量';
- 流程控制语句
1.if....else...条件选择结构
declare v_number number(3,2) := 2.2; begin if v_number > 2 then dbms_output.put_line('v_number 大于 2'); end if; dbms_output.put_line('if 条件语句执行结束'); v_number := 1.2; if v_number > 2 then dbms_output.put_line('v_number 大于 2'); else dbms_output.put_line('v_number 小于等于 2'); end if; dbms_output.put_line('if else 条件语句执行结束'); if v_number < 1 then dbms_output.put_line('v_number 小于 1'); elsif v_number > 1.2 then dbms_output.put_line('v_number 小于 1.2'); else dbms_output.put_line('v_number 小于等于 1.2 大于等于 1'); end if; end;
输出结果:
v_number 大于 2 if 条件语句执行结束 v_number 小于等于 2 if else 条件语句执行结束 v_number 小于等于 1.2 大于等于 1
2.case 条件控制语句
update goods set remark = case when goodsid < 10 then '编号小于10' when remark is null then '没有备注' else '编号大于等于10且有备注' end select case when remark is null then '没有备注' when remark is not null then remark else '其他' end from goods
3.loop循环控制语句
declare v_i number(2) := 0; begin <<fst_loop>> loop dbms_output.put_line('v_i = ' || v_i); v_i := v_i +1; exit fst_loop when v_i >5; end loop; dbms_output.put_line('结束 fst_loop'); <<sec_loop>> loop dbms_output.put_line('v_i = ' || v_i); v_i := v_i +1; if v_i > 10 then dbms_output.put_line('v_i ='||v_i||'当前值大于 10'); exit sec_loop; end if; end loop sec_loop; dbms_output.put_line('结束 sec_loop'); <<while_loop>> while v_i < 15 loop dbms_output.put_line('v_i = ' || v_i); v_i := v_i +1; end loop while_loop; dbms_output.put_line('结束 while_loop'); <<for_loop>> for v_j in 15..20 loop v_i := v_i +1; end loop; dbms_output.put_line('v_i ='||v_i); dbms_output.put_line('结束 for_loop'); end;
输出结果:
v_i = 0 v_i = 1 v_i = 2 v_i = 3 v_i = 4 v_i = 5 结束 fst_loop v_i = 6 v_i = 7 v_i = 8 v_i = 9 v_i = 10 v_i =11当前值大于 10 结束 sec_loop v_i = 11 v_i = 12 v_i = 13 v_i = 14 结束 while_loop v_i =21 结束 for_loop

浙公网安备 33010602011771号