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. Arithmatic项目修改总结

    Arithmatic项目修改总结 github仓库 arithmatic3.0 一. 修改介绍 修改后类图: 1.关于类的合并 ==可以发现相比右边(旧)的类,左边(新)的类少了很多,这是我这次大改的 ...

  2. Beta发布—视频展示

    视频链接:http://v.youku.com/v_show/id_XMzE3ODQ0NjIzMg==.html视频简要内容介绍:1.一个小小的logo展示.2.在alpha的基础上,beta发布中增 ...

  3. Notes of Scrum Meeting(2014/11/2)

    Notes of Scrum Meeting (2014/11/2) 软件工程项目组Sevens开始项目之后的第一次Scrum Meeting报告 会议时间:2014年11月2日  20:00—20: ...

  4. Task 6.2站立会议一

    今天大家把这两天查的资料都拿出来整合到了一起,并仔细分析了其中的联系和区别. 因为大家每个人的思路都不一样,有各种各样的想法和不同的意见,所以最终统一意见是很难的一个过程.开始大家认我们可以做一个单独 ...

  5. Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?

    Linux网卡配置文件路径是什么?要使服务器上外网,必须满足的条件有哪些?需要配置什么?    答:    网卡配置文件路径:/etc/sysconfig/network-scripts/ifcfg- ...

  6. 11th 单元测试工具JUnit的学习

    1.写好一个简易的四则运算的程序 UnitTest类文件: public class UnitTest { int a; int b; int answer;//正确答案 public int plu ...

  7. 使用JavascriptExecutor将页面滚动到最底部

    使用如下代码,将页面滚动到最底部 @Test(enabled = true) public void scroll(){ String jsStr="window.scrollTo(0,do ...

  8. windows多线程(十一) 更安全的创建线程方式_beginthreadex()

    一.原因分析 CreateThread()函数是Windows提供的API接口,在C/C++语言另有一个创建线程的函数_beginthreadex(),我们应该尽量使用_beginthreadex() ...

  9. [转帖] SQLNET.ORA的处理.

    被一个客户端连接远程数据库阻塞超时的问题困扰了好久,最后终于找到了答案  https://blog.csdn.net/herobox/article/details/16985097   Oracle ...

  10. [转贴]infoQ VSTS被拆成5个部分,以Azure DevOps服务形式推出

    VSTS被拆成5个部分,以Azure DevOps服务形式推出 http://www.infoq.com/cn/news/2018/09/vsts-divide5parts-azuredevops?u ...