Oracle中的for和while循环
实例:
begin
for i in 51..500 loop
delete from test t where t.date=to_date('2016-07-01', 'yyyy-MM-dd') and t.name like ('%'||i);-------oracle使用||作为连接符
update test t set t.code=('TEXT-0000-2-'||lpad(1,3,'0')) ,t.name=replace(t.name,'3001','0000') where to_char(t.date,'YYYYMM')='201606';---------lpad补位函数、replace替换函数、to_char日期转换函数
commit;
end loop;
end;
有两种方式可以实现条件循环
一、for 变量 in 开始数值...结束数值 loop end loop;
二、while 条件 loop end loop;
loop的使用方式:
一、X := 100;
LOOP
X := X + 10;
IF X > 1000 THEN
EXIT;
END IF END LOOP;
Y := X;
二、 X := 100;
LOOP
X := X + 10;
EXIT WHEN X > 1000;
X := X + 10;
END LOOP;
Y := X;
还有一个GOTO的使用,在后面的过程中会有的,用来产生错误日志。
以下是一个非常简单的过程,用来熟悉循环的!
create or replace procedure count_number is
/*
功能描述:计算计算出1到100的和
t的值为和
*/
i number(10);
t number(10);
begin
/*
i := 1;
t := 0;
--用while+loop实现
/*begin
while i <= 100 loop
t := t + i;
i := i + 1;
end loop;
end;
*/
i := 1;
t := 0;
--用for实现
begin
for i in 1 .. 100 loop
t := t + i;
end loop;
end;
end count_number;
for循环:
[PL/SQL] 用For Loop 替代Cursor
http://www.itwenzhai.com/data/2006/0523/article_9377.htm
http://blog.csdn.net/heyday/archive/2005/07/27/435804.aspx
CURSOR FOR Loop
FOR employee_rec in c1 ---employee_rec直接用,不用提前定义
LOOP
total_val := total_val + employee_rec.monthly_income;
END LOOP;
当使用CURSOR FOR Loop时,不用我手工open cursor close cursor
应用:
begin
FOR emm IN ( SELECT ro_site, ns_site, product_line, wh_type
FROM eis_hq_invhl_mail_data
WHERE report_type = 'Detailed' )
LOOP
DBMS_OUTPUT.put_line( emm.product_line );
eis_hq_invhl_pkg.make_mail_detailed_data
( p_ro_site => emm.ro_site,
p_ns_site => emm.ns_site,
p_product_line => emm.product_line,
p_wh_type => emm.wh_type,
p_current_day => to_date('2005-11-07','yyyy-MM-dd') );
END LOOP;
end;
存储过程DIY2----游标与循环
http://blog.csdn.net/brave1/archive/2005/06/08/390160.aspx
while循环:
WHILE( i <= CEIL( LENGTH( p_clob_data ) / 4000 ))
LOOP
v_clob_data := TRIM( SUBSTR( p_clob_data,
i * 4000,
4000 ));
DBMS_OUTPUT.put_line( SUBSTR( v_clob_data,
0,
255 ));
i := i + 1;
END LOOP;
Oracle中的for和while循环的更多相关文章
- 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_ ...
- for循环往Oracle中插入n条数据,主键自增
1.主键自增实现方法:http://www.cnblogs.com/Donnnnnn/p/5959871.html 2.for循环往Oracle中插入n条数据 BEGIN .. loop insert ...
- 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) ...
- Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题
转: Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题 在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为: ...
- 【Oracle】oracle中rownum的说明及使用技巧
oracle中常用到ROWNUM,所以做一些本人对rownum的一些认识和使用技巧的记录,以便备查. 一.rownum的说明 rownum是oracle特有的一个关键字. (1)对于基表,在inser ...
- Oracle中PL/SQL的执行部分和各种流程控制
Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...
- Oracle中的NVL函数
Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...
随机推荐
- ccflow_002.表单引擎与流程引擎的关系
本节主要内容 表单.数据.流程引擎的关系 图形展示三者之间的关系 流程编号和节点编号命名规则 这里的206就是这个流程的编号 2601:01就是当前节点的编号 流程编号206转换为int类型之后加上0 ...
- 详解Supervisor进程守护监控
Supervisor在百度百科上给的定义是超级用户,监管员.Supervisor是一个进程管理工具,当进程中断的时候Supervisor能自动重新启动它.可以运行在各种类unix的机器上,superv ...
- 关于国债的一些计算: 理论TF价格2(缴款日前有付息)
计算 ExpectedTFPrice 是一个比较复杂的计算,我们这里讨论复杂的一种情况. 给定一只可交割国债bond(一般为CTD),一个国债期货tf, 在t日(表示tf的一个交易日期,我们通过bon ...
- PAT团体程序设计天梯赛 - 模拟赛
由于本人愚笨,最后一题实在无力AC,于是只有前14题的题解Orz 总的来说,这次模拟赛的题目不算难,前14题基本上一眼就有思路,但是某些题写起来确实不太容易,编码复杂度有点高~ L1-1 N个数求和 ...
- 黑客攻防技术宝典web实战篇:Web 应用程序技术习题
猫宁!!! 参考链接:http://www.ituring.com.cn/book/885 随书答案. 1. OPTIONS 方法有什么作用? OPTIONS 方法要求服务器报告可用于特定资源的 HT ...
- iOS NSUserDefaults [setValue:forKey:] [setObject:forKey:] <Objc> setValue(_,forKey:) set(_,forKey) <Swift 3>
前者其实是NSObject都可以调用的KVC方法,后者才是NSUserDefaults的实例方法: 这里参数的类型是nullable id,但是我建议你在传null的时候慎重考虑,否则你的应用就可能面 ...
- 跟我一起玩Win32开发(16):ListView的多个视图
在上一个例子中,我们只用到了ListView的Report视图,也就是详细视图.本文我们再把上一篇文章中所用的例子进行一下扩展,例子源码可以到俺的资源区下载. 我们为ListView中显示的数据加上图 ...
- only-child选择器
:only-child选择器用于匹配属于某一个父元素的唯一子元素的元素,也就是说,如果某个父元素仅有一个子元素,则使用 :only-chlid选择器 ,可以选择这个子元素
- 【模板】RMQ问题的ST表实现
$RMQ$问题:给定一个长度为$N$的区间,$M$个询问,每次询问$[L_i,R_i]$这段区间元素的最大值/最小值. $RMQ$的高级写法一般有两种,即为线段树和$ST$表. 本文主要讲解一下$ST ...
- Brush (IV) LightOJ - 1018
题意:平面上有一些点,每刷一次可以把同一条直线上的点都刷光,问最少几次把所有点刷光. 方法: 显然是一个状态压缩dp.ans[S]表示把S集合中点刷掉的最少次数.最开始想到的方法是如果S中只有一个或两 ...