Oracle循环语句

Posted loyer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Oracle循环语句相关的知识,希望对你有一定的参考价值。

select * from goods;
       a char(10):=三星   --定长字符串
       b varchar2(10):=三星;    --可变字符串
       c binary_integer:=10001;        --带符号整数,为整数计算优化性能 
       d number(5,2):=123.45;           --数值
       e long                   --变长字符串 
       f date                   --日期
       g boolean                --布尔
       h rowid                  --存放数据库行号 
       i Goods.Gname%type:=三星;          --用%type定义与表相配的属性类型
------------------------------------------------------if语句
declare 
       c binary_integer:=10002;
begin 
       if c>10 then update Goods set Gnote=\(^o^)/~ where Gid=c;
       end if;
end;
------------------------------------------------------if..else语句
declare
       a number(4,2):=13.45;
       d number(5,2):=123.45;
begin
       if a>d then DBMS_OUTPUT.put_line(AAA);
       else DBMS_OUTPUT.put_line(BBB);
       end if;
end;
------------------------------------------------------if..elsif..else语句
declare
       a varchar2(10):=823;
       b varchar2(10):=12a3456;
       c number:=132456798;
begin
       if a<b and a>c then DBMS_OUTPUT.put_line(AAA);
       elsif a>b or a>c then DBMS_OUTPUT.put_line(BBB);   --字符串比较是从下标第一个开始比
       elsif a<c then DBMS_OUTPUT.put_line(CCC);
       else DBMS_OUTPUT.put_line(DDD);
       end if;
end;
------------------------------------------------------case语句
declare
       a char(10):= upper(&p_grade);
       b varchar2(10);       
begin 
       b:= case a
       when A then 123
       when B then 456
       when C then 789
       else NO
       end;
       DBMS_OUTPUT.put_line(b||ABCD);
end;
------------------------------------------------------loop循环
declare
        a number(10):=0;
begin
        loop a:=a+1;
        DBMS_OUTPUT.put_line(a的当前值为||a);
        exit when a=10;
        end loop;
end;
------------------------------------------------------for循环
declare
        a char(10):=1;              
begin
        for x in 1..10 loop 
        DBMS_OUTPUT.put_line(a的当前值为||a);
        end loop;
end;
------------------------------------------------------for循环使用关键字reverse(倒序循环)
declare
        a varchar2(10):=10;
begin
        for a in reverse 1..10 loop
        DBMS_OUTPUT.put_line(a的当前值为||a);
        end loop;
end;  
------------------------------------------------------while循环
declare
        a number:=1;
begin
        while a<=10 loop
        DBMS_OUTPUT.put_line(a的当前值为||a);
        a:=a+1;
        end loop;
end;  
------------------------------------------------------用for循环添加属性
create table Demo (DID number(5),Dname varchar2(10));
select * from Demo;
declare
       a number:=1;
       b varchar2(10):=Jack;
begin
       for a in 1..10 loop
       insert into Demo(DID,DNAME) values (a,b);
       end loop;
       for a in 1..10 loop
       insert into Demo(DNAME) values (b);
       end loop;
end;
delete from Demo
------------------------------------------------------
declare
       a number:=1;
begin
  loop 
  DBMS_OUTPUT.put_line(a的当前值为||a);
  a:=a+1;
  if a>10
  then goto loyer;
  end if;
  end loop;
  <<loyer>>
  null;     --不需要处理任何数据
  DBMS_OUTPUT.put_line(ABCD);
end;
------------------------------------------------------

 

以上是关于Oracle循环语句的主要内容,如果未能解决你的问题,请参考以下文章

来自异常块 Oracle 的控制循环语句

Oracle循环语句

c#通过for循环多次向数据库中插入数据。

关于oracle循环语句的一个问题

shell if 语句

从 Java 到 Oracle SQL 的翻译:将每个元素作为 SELECT 语句的结果使用到循环中[关闭]