oracle的loop
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的更多相关文章
- oracle for loop
我们在Oracle存储过程中需要遍历一张表,应该怎样做.我想大多少的人第一个念头就是Cursor. 比如: create or replace procedure StudyCursor( resul ...
- oracle for loop循环以及游标循环
1. for in loop形式 DECLARE CURSOR c_sal IS SELECT employee_id, first_name || last_name ename, salar ...
- oracle的loop等循环语句的几个用法小例子
--loop循环用法 (输出1到10) declare v_num number(2) := 0; begin loop v_num := v_num + 1; exit when v_num > ...
- oracle的loop等循环语句的几个用法小例子[转]
--loop循环用法 (输出1到10) declare v_num number(2) := 0; begin loop v_num := v_num + 1; exit when v_num > ...
- oracle for loop 简单
declare i NUMBER; begin loop INSERT INTO emp VALUES(i,i); end LOOP; END;
- oracle中的loop与while循环
Oracle中loop语句会先执行一次循环,然后再判断“exit when”关键字后面的条件表达式的值是true还是false,如果是true,那么将退出循环,否则继续循环. LOOP循环 语法如下l ...
- Oracle中三种循环(For、While、Loop)
1.ORACLE中的GOTO用法 DECLARE x number; BEGIN x := 9; <<repeat_loop>> --循环点 x := x - 1; DBMS_ ...
- Oracle中四种循环(GOTO、For、While、Loop)
DECLARE x number; BEGIN x:=9; <<repeat_loop>> --循环点 x:=x-1; DBMS_OUTPUT.PUT_LINE(X); IF ...
- Oracle中三种循环(For、While、Loop)案例
1.ORACLE中的FOR循环用法(九九乘法表) declare i ; j ; begin .. loop ..i loop Dbms_Output.put(i||'*'||j||'='||i*j) ...
随机推荐
- Performance — 前端性能监控利器
Performance是一个做前端性能监控离不开的API,最好在页面完全加载完成之后再使用,因为很多值必须在页面完全加载之后才能得到.最简单的办法是在window.onload事件中读取各种数据. 大 ...
- 图解Raid5数据存储的原理
- 详细教你实现BST(二叉排序树)
查找基本分类如下: 线性表的查找 顺序查找 折半查找 分块查找 树表的查找 二叉排序树 平衡二叉树 B树 B+树 散列表的查找 今天介绍二叉排序树. 二叉排序树 ( Binary Sort Tree ...
- C++:友元
前言:友元对于我来说一直是一个难点,最近看了一些有关友元的课程与博客,故在此将自己的学习收获做一个简单的总结 一.什么是友元 在C++的自定义类中,一个常规的成员函数声明往往意味着: • 该成员函数能 ...
- centos6 安装图形化界面
1.首先进行光盘的挂载,注意光盘挂载时不会自动建立目录的,所以需要自己建立目录 mkdir /mnt/cdrom mount /dev/cdrom /mnt/cdrom #dev目录为设备目录 2.更 ...
- The Begining
学习记录之旅,就此开始.软件工程,Java神马的统统到我碗里来.
- HDU 2159 FATE 完全背包
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=2159 FATE Time Limit: 2000/1000 MS (Java/Others)Memo ...
- Keil MDK中的Code, RO-data , RW-data, ZI-data分别代表什么意思?(转)
一 基础知识 字节 8位半字 16位字 32位 二 解惑 Code, RO-data,RW-data,ZI-data Code为程序代码部分RO-data 表示 程序定义的常量const t ...
- 转 JS模块化简单实现
git示例地址:https://github.com/wufenfen/requireJS-Demo.git
- 个人作业-week3案例分析
第一部分 软件调研测评(必应词典移动端) 找到的bug: 在词汇量测试中每个单词给用户思考的时间太短,只有五秒钟.导致很多似曾相识的单词还没来得及想起就已经过了.如果说测的是用户记忆深刻的单词,那些记 ...