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

--loop循环用法 (输出1到10)
declare v_num number(2) := 0;
begin
loop
v_num := v_num + 1;
exit when v_num > 10;
--上面退出循环也可以用下面3行
/* if(v_num > 9) then
exit;
end if;*/
dbms_output.put_line(v_num);
end loop;
end; --while loop循环用法 (输出1到10)
declare v_num number(2) := 0;
begin
while v_num < 10 loop
v_num := v_num + 1;
dbms_output.put_line(v_num);
end loop;
end; --for loop循环用法1 (输出1到10)
declare v_num number(2) := 99;
begin
for v_n in 1 .. v_num loop
exit when v_n > 10;
dbms_output.put_line(v_n);
end loop;
end; --for loop循环用法2 (输出某个表的序号、列数据)
begin
for v_n in(select amount,rownum from tmp) loop
dbms_output.put_line(v_n.rownum || ' , ' || v_n.amount);
end loop;
end; ---个循环打印某个月日历例子
declare v_days number(2);
v_firstday number(2);
v_result varchar2(4000);
v_d varchar(100);
v_month date;
begin
v_month := to_date('','yyyymmdd');
v_result := to_char(v_month,'yyyy') || '年' || to_char(v_month,'mm') || '月' || chr(10) || '日 一 二 三 四 五 六' || chr(10);
select to_char(last_day(v_month), 'dd') into v_days from dual;--当月多少天
select to_char(trunc(v_month, 'mm'),'d') into v_firstday from dual;--当月第1天是星期几:1-7
--1号所在星期几的之前每一天补3个空格
for v_week in 1 .. v_firstday - 1 loop
exit when v_firstday < 2;
v_result := v_result || ' ';
end loop;
for v_date in 1 .. v_days loop
v_d := v_date;
if(length(v_date) = 1) then
v_d := ' '||v_date ;
end if;
v_result := v_result || v_d || ' ';
if(mod(v_date + v_firstday, 7) = 1) then
v_result := v_result || ' ' || chr(10);
end if;
end loop;
dbms_output.put_line(v_result);
end;
/*
运行结果: 2017年03月
日 一 二 三 四 五 六
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
*/

oracle的双重for循环

    create or replace procedure test_procedure is
--a表游标定义
cursor a_cursor is
select substr(mc,0,2) as str ,mc as mcs from t_bz_zd_xzqh_jc;
--b表游标定义
cursor b_cursor(str1 string) is
SELECT bm FROM t_bz_zd_xzqh where mc like '%' || str1 || '%'; -- instr(mc, str1) > 0;
begin
for a_cur in a_cursor loop
for b_cur in b_cursor(a_cur.str) loop
--这里是你要执行的操作,比如insert到c
--insert into c values (b_cur.id);
update t_bz_zd_xzqh_jc set bh= b_cur.bm where mc = a_cur.mcs ;
commit;
end loop;
end loop; end;

oracle的loop的更多相关文章

  1. oracle for loop

    我们在Oracle存储过程中需要遍历一张表,应该怎样做.我想大多少的人第一个念头就是Cursor. 比如: create or replace procedure StudyCursor( resul ...

  2. oracle for loop循环以及游标循环

    1. for in loop形式 DECLARE    CURSOR c_sal IS SELECT employee_id, first_name || last_name ename, salar ...

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

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

  4. oracle的loop等循环语句的几个用法小例子[转]

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

  5. oracle for loop 简单

    declare i NUMBER; begin loop INSERT INTO emp VALUES(i,i); end LOOP; END;

  6. oracle中的loop与while循环

    Oracle中loop语句会先执行一次循环,然后再判断“exit when”关键字后面的条件表达式的值是true还是false,如果是true,那么将退出循环,否则继续循环. LOOP循环 语法如下l ...

  7. Oracle中三种循环(For、While、Loop)

    1.ORACLE中的GOTO用法 DECLARE x number; BEGIN x := 9; <<repeat_loop>> --循环点 x := x - 1; DBMS_ ...

  8. Oracle中四种循环(GOTO、For、While、Loop)

    DECLARE x number; BEGIN x:=9; <<repeat_loop>> --循环点 x:=x-1; DBMS_OUTPUT.PUT_LINE(X); IF ...

  9. Oracle中三种循环(For、While、Loop)案例

    1.ORACLE中的FOR循环用法(九九乘法表) declare i ; j ; begin .. loop ..i loop Dbms_Output.put(i||'*'||j||'='||i*j) ...

随机推荐

  1. 从零开始的Python学习Episode 20——面向对象(3)

    面向对象之封装 封装,即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别:将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体. 隐藏 在python中用双下划线开 ...

  2. 7.openldap使用ssl加密认证

    作者:yaoyao 1.服务器端部署 1.自建CA中心 1.CA中心生成自身私钥 #cd /etc/pki/CA #(umask 077; openssl genrsa -out private/ca ...

  3. 让CentOS在同一个窗口打开文件夹

    http://www.linuxidc.com/Linux/2010-04/25756.htm

  4. No.1_NABCD模型分析

        Reminder 之 NABCD模型分析           定位 多平台的闹钟提醒软件. 在安卓市场发布软件,发布后一周的用户量为1000.           N (Need 需求) 这个 ...

  5. Leetcode题库——8.字符串转为整数【##】

    @author: ZZQ @software: PyCharm @file: myAtoi.py @time: 2018/9/20 20:54 要求:实现 atoi,将字符串转为整数. 1)根据需要丢 ...

  6. Unity3D游戏开发——访问集中式共享模块的设计模式

    什么是设计模式 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类的.代码设计经验的总结.设计模式是开发人员在开发过程中面临的一般问题的解决方案,这些解决方案是众多开发人 ...

  7. diliucizuoye

    NABCD N(Need 需求) 互联网的高速发展,造就了二十一世纪这个追求高品质.高体验的信息时代,随其发展改变的是信息记录与分享方式,从传统的面对面交流.手机通话.写日记本,到现如今的社交平台.信 ...

  8. 项目冲刺Beta第二篇博客

    Beta版本冲刺计划安排 1.当天站立式会议照片: 2.工作分工: 团队成员 分工 张洪滨060  排行榜界面美化 陈敬轩059  注册成功界面美化 黄兴067  登录界面美化 林国梽068  答题界 ...

  9. NodeJs实现客户端登陆

    nodejs的api中有一个process进程对象,process 对象是一个 global (全局变量),提供有关信息,控制当前 Node.js 进程.作为一个对象,它对于 Node.js 应用程序 ...

  10. sqlserver实现树形结构递归查询(无限极分类)

    SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE ...