1. --loop循环用法 (输出1到10)
  2. declare v_num number(2) := 0;
  3. begin
  4. loop
  5. v_num := v_num + 1;
  6. exit when v_num > 10;
  7. --上面退出循环也可以用下面3行
  8. /* if(v_num > 9) then
  9. exit;
  10. end if;*/
  11. dbms_output.put_line(v_num);
  12. end loop;
  13. end;
  14. --while loop循环用法 (输出1到10)
  15. declare v_num number(2) := 0;
  16. begin
  17. while v_num < 10 loop
  18. v_num := v_num + 1;
  19. dbms_output.put_line(v_num);
  20. end loop;
  21. end;
  22. --for loop循环用法1 (输出1到10)
  23. declare v_num number(2) := 99;
  24. begin
  25. for v_n in 1 .. v_num loop
  26. exit when v_n > 10;
  27. dbms_output.put_line(v_n);
  28. end loop;
  29. end;
  30. --for loop循环用法2 (输出某个表的序号、列数据)
  31. begin
  32. for v_n in(select amount,rownum from tmp) loop
  33. dbms_output.put_line(v_n.rownum || ' , ' || v_n.amount);
  34. end loop;
  35. end;
  36. ---个循环打印某个月日历例子
  37. declare v_days number(2);
  38. v_firstday number(2);
  39. v_result varchar2(4000);
  40. v_d varchar(100);
  41. v_month date;
  42. begin
  43. v_month := to_date('20170301','yyyymmdd');
  44. v_result := to_char(v_month,'yyyy') || '年' || to_char(v_month,'mm') || '月' || chr(10) ||  '日 一 二 三 四 五 六' || chr(10);
  45. select to_char(last_day(v_month), 'dd') into v_days from dual;--当月多少天
  46. select to_char(trunc(v_month, 'mm'),'d') into v_firstday from dual;--当月第1天是星期几:1-7
  47. --1号所在星期几的之前每一天补3个空格
  48. for v_week in 1 .. v_firstday - 1  loop
  49. exit when v_firstday < 2;
  50. v_result := v_result || '   ';
  51. end loop;
  52. for v_date in 1 .. v_days loop
  53. v_d := v_date;
  54. if(length(v_date) = 1) then
  55. v_d :=  ' '||v_date ;
  56. end if;
  57. v_result := v_result || v_d || ' ';
  58. if(mod(v_date + v_firstday, 7) = 1) then
  59. v_result := v_result || ' ' || chr(10);
  60. end if;
  61. end loop;
  62. dbms_output.put_line(v_result);
  63. end;
  64. /*
  65. 运行结果:
  66. 2017年03月
  67. 日 一 二 三 四 五 六
  68. 1  2  3  4
  69. 5  6  7  8  9 10 11
  70. 12 13 14 15 16 17 18
  71. 19 20 21 22 23 24 25
  72. 26 27 28 29 30 31
  73. */

原文地址: http://blog.csdn.net/gdjlc/article/details/64125097

oracle的loop等循环语句的几个用法小例子[转]的更多相关文章

  1. oracle的loop等循环语句的几个用法小例子

    --loop循环用法 (输出1到10) declare v_num number(2) := 0; begin loop v_num := v_num + 1; exit when v_num > ...

  2. oracle 关于动态执行语句 execute immediate 的用法

    当在开发的应用场景中 数据库处理复杂业务逻辑里用到 SQL 语句拼接    可以用  execute immediate   来执行语 举个例子 insert into tb_temp_public( ...

  3. sql 语句左连接右连接小例子

    A表(a1,b1,c1) B表(a2,b2) a1 b1 c1 a2 b2 01 数学 95 01 张三 02 语文 90 02 李四 03 英语 80 04 王五 select A.*,B.* fr ...

  4. oracle的loop

    oracle的loop等循环语句的几个用法小例子 --loop循环用法 (输出1到10) ) :; begin loop v_num :; ; --上面退出循环也可以用下面3行 /* if(v_num ...

  5. Oracle的分页查询语句优化

    Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. (一)   分页查询格式: SELECT * FROM  ( SELECT A.*, ROWNUM RN  FROM (SELECT ...

  6. oracle去掉重复记录语句

    oracle去掉重复记录语句   比如现在有一人员表 (表名:peosons) 若想将姓名.身份证号.住址这三个字段完全相同的记录查询出来 select p1.*   from persons  p1 ...

  7. oracle过程中动态语句实现

    oracle过程中动态语句实现 一般的PL/SQL程序设计中,在DML和事务控制的语句中可以直接使用SQL,但是DDL语句及系统控制语句却不能在PL/SQL中直接使用,要想实现在PL/SQL中使用DD ...

  8. 说说oracle分页的sql语句

    说说oracle分页的sql语句,分排序和不排序两种. 当结果集不需要进行排序时,每页显示条数为:rowPerPage,当前页数为:currentPage. 1. 相对来说,这种查询速度会快一些,因为 ...

  9. oracle 多条执行语句同时执行

    oracle 多条执行语句同时执行:begin 语名一;语句二; end; 注意 如果写在C#里千万不要用@的方法然后语句里有回车 例: string strSql = "begin upd ...

随机推荐

  1. CentOS6.4之图解SSH无验证双向登陆配置

    配置SSH无登陆验证,在很多场景下是非常方便的,尤其是在管理大型集群服务时,避免了繁琐的密码验证,在安全级别越高的服务器上,通常密码的设置更复杂,配置SSH,不仅可以用密钥保证节点间通信的安全性,同时 ...

  2. Java中关于日期类那些方法

                                                                       转载请注明出处http://blog.csdn.net/harry ...

  3. SQL server插入数据后,如何获取自增长字段的值?

    insert into Tb_People(uname,era,amount) values( '兆周','老年','10000') select @@identity --当运行完插入语句后,执行s ...

  4. nyoj 504 课程设计

    课程设计 时间限制:3000 ms  |  内存限制:65535 KB 难度:2 描述 新学期伊始,Gangster 老师又在为如何给学生分配课程设计题目而犯愁,Gangster老师老共有 N 名学生 ...

  5. Oracle PLSQL Demo - 10.For Loop遍历游标[FOR LOOP CURSOR]

    declare cursor cur_emp is select t.* from scott.emp t; begin for r_emp in cur_emp loop dbms_output.p ...

  6. 面向对象 之 [C++面试题]

    说到面向对象,大家第一反应应该就是它的三大特性:封装性.继承性和多态性.那么我们先简单的了解一下这三大特性: (1)封装性:封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的 ...

  7. FreeRTOS 低功耗之停机模式

    以下转载自安富莱电子: http://forum.armfly.com/forum.php STM32F103 如何进入停机模式在 FreeRTOS 系统中,让 STM32 进入停机模式比较容易,调用 ...

  8. LTDC/DMA2D—液晶显示

    本章参考资料:<STM32F4xx 参考手册 2>.<STM32F4xx 规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm> ...

  9. biicode:一个现代的 C 依赖管理器

    因为经营原因,公司已经倒闭了. Biicode (just the company) post-mortemPosted on August 11, 2015 by biicode TeamThis ...

  10. 面试-Hash是怎么实现的?

    相关资料:http://blog.csdn.net/luyuncsd123/article/details/11590861 Hash生命起源:那么,我们开始思考:有什么方式既能够具备数组的快速查询的 ...