频道栏目
首页 > 资讯 > Oracle > 正文

oracle流程控制语句

17-07-28        来源:[db:作者]  
收藏   我要投稿

oracle中的流程控制语句,主要包括选择语句和循环语句,选择语句也就是条件语句。

一、条件语句

1.if then 语句格式

if then
end if;

2.if then else 语句格式

if then
plsql语句1;
else
plsql语句2;

3.if then elsif 语句格式

if then
plsql语句1;
elsif then
plsql语句2;
elsif then
plsql语句3;
......
......

end if;

举个例子,用oracle自带的表emp作为基础。判断员工编号不同的两位员工,谁的名字字符更长。

DECLARE
  A EMP.ENAME%TYPE;
  B EMP.ENAME%TYPE;
BEGIN
  SELECT EMP.ENAME INTO A FROM EMP WHERE EMP.EMPNO = 7369;
  SELECT EMP.ENAME INTO B FROM EMP WHERE EMP.EMPNO = 7499;
  IF LENGTH(A) > LENGTH(B) THEN
    DBMS_OUTPUT.PUT_LINE(A || '的名字长');
  ELSIF LENGTH(A) > LENGTH(B) THEN
    DBMS_OUTPUT.PUT_LINE(B || '的名字长');
  ELSIF LENGTH(A) = LENGTH(B) THEN
    DBMS_OUTPUT.PUT_LINE(A || '和' || B || '的名字一样长');
  END IF;
END;


4.case 语句格式

case<变量>
when<1> then plsql语句1;
when<2> then plsql语句2;
when<3> then plsql语句3;
else
end case;

多情况判断时可以考虑用case语句替换elsif语句,因为case简洁明了。

二、循环语句

1.loop循环语句
格式:
loop
sql语句;
exit when 结束条件
end loop;
这种情况下会先执行一次循环体,然后再判断是否退出循环体。
SQL> DECLARE
  2    --求1到10之和是多少
  3    I    INT := 0;
  4    SUMI INT := 0;
  5  BEGIN
  6    LOOP
  7      I    := I + 1;
  8      SUMI := SUMI + I;
  9      EXIT WHEN I = 10;
 10    END LOOP;
 11    DBMS_OUTPUT.PUT_LINE('1到10求和为' || SUMI);
 12  END;
 13  /

1到10求和为55
PL/SQL procedure successfully completed

2.while循环语句

先判断条件是否满足,满足的话开始进入循环体,看下面的例子。
DECLARE
  --求1到10之和是多少
  I    INT := 0;
  SUMI INT := 0;
BEGIN
  WHILE I <= 9 LOOP
    I    := I + 1;
    SUMI := SUMI + I;
  END LOOP;
  DBMS_OUTPUT.PUT_LINE('1到10求和为' || SUMI);
END;

3.for循环语句

for循环是可以预置循环次数的控制语句,有一个计数器,下面的a就是这个功能,默认情况下这个计数器是逐渐递增的,但是也可以在前面加上关键字reverse,变成逐渐递减。
DECLARE
  --求1到10之和是多少
  I    INT := 0;
  SUMI INT := 0;
  a INT :=0;
BEGIN
  FOR a IN 0 .. 9 LOOP
    I    := I + 1;
    SUMI := SUMI + I;
  END LOOP;
  DBMS_OUTPUT.PUT_LINE('1到10求和为' || SUMI);
END;
相关TAG标签
上一篇:mysql常用命令
下一篇:mysql数据库更改表相关操作
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站