存储过程 --- 8 --- 循环

--建测试表
DROP TABLE CXY_CCGC_TEST2_T;
CREATE TABLE CXY_CCGC_TEST2_T(
    id VARCHAR2(32),
    content CLOB ,
    like_time DATE DEFAULT SYSDATE 
);
--插表数据
declare
begin
  for i in 1..3 loop
    insert into CXY_CCGC_TEST2_T values(SYS_GUID (),'测试',sysdate);
  end loop;    
end;
select * from CXY_CCGC_TEST2_T;

--建存储过程
CREATE OR REPLACE PROCEDURE CXY_CCGC_TEST5_P
AS
   i                     NUMBER;
   cursor datas is
     select * from CXY_CCGC_TEST2_T;--非常简单的一个测试表
BEGIN
   --loop循环
   DBMS_OUTPUT.put_line('=============================================loop');
   i := 0;
   loop
     i := i + 1;
     --if 比较式 then begin end; end if;
     if i > 3 then
        exit;
     end if;
     DBMS_OUTPUT.put_line('loop循环第' || i || '次循环');
   end loop;
   --while循环
   /*
   while 条件语句 LOOP
     begin
       --执行语句
     end;
   end LOOP;
   */
   DBMS_OUTPUT.put_line('=============================================while');
   i := 0;
   while i < 3 loop
     i := i + 1;
     DBMS_OUTPUT.put_line('while循环第' || i || '次循环');
   end loop;
   --for循环
   /*
   For ... in ... LOOP
     --执行语句
   end LOOP;
   */
   DBMS_OUTPUT.put_line('=============================================for');
   for i in 6..9 loop
     DBMS_OUTPUT.put_line('for循环第' || i || '次循环');
   end loop;
   --循环遍历游标
   for dat in datas loop
     DBMS_OUTPUT.put_line('for循环 cursor遍历:' || dat.id);
   end loop;
   DBMS_OUTPUT.put_line('=============================================END');
EXCEPTION
   WHEN OTHERS THEN
     DBMS_OUTPUT.put_line('sqlcode : ' || sqlcode);
     DBMS_OUTPUT.put_line('sqlerrm : ' || sqlerrm);
     ROLLBACK;
END CXY_CCGC_TEST5_P;

--调用
BEGIN
CXY_CCGC_TEST5_P();
END;

调用该存储过程输出如下: 

希望对你有帮助,祝你有一个好心情,加油!

若有错误、不全、可优化的点,欢迎纠正与补充!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值