实例:

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循环的更多相关文章

  1. oracle中的loop与while循环

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

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

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

  3. for循环往Oracle中插入n条数据,主键自增

    1.主键自增实现方法:http://www.cnblogs.com/Donnnnnn/p/5959871.html 2.for循环往Oracle中插入n条数据 BEGIN .. loop insert ...

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

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

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

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

  6. Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题

    转: Oracle中使用Table()函数解决For循环中不写成 in (l_idlist)形式的问题 在实际PL/SQL编程中,我们要对动态取出来的一组数据,进行For循环处理,其基本程序逻辑为: ...

  7. 【Oracle】oracle中rownum的说明及使用技巧

    oracle中常用到ROWNUM,所以做一些本人对rownum的一些认识和使用技巧的记录,以便备查. 一.rownum的说明 rownum是oracle特有的一个关键字. (1)对于基表,在inser ...

  8. Oracle中PL/SQL的执行部分和各种流程控制

    Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...

  9. Oracle中的NVL函数

    Oracle中函数以前介绍的字符串处理,日期函数,数学函数,以及转换函数等等,还有一类函数是通用函数.主要有:NVL,NVL2,NULLIF,COALESCE,这几个函数用在各个类型上都可以. 下面简 ...

随机推荐

  1. 【WEB基础】HTML & CSS 基础入门(3)段落及文本

    写在前面:CSS选择器 网页要显示很多内容,想要为每个内容设置不同的样式,我们就得首先选中要设置样式的内容,CSS选择器就是指明该样式是针对HTML里哪一个元素的.简单的例子,网页上有几段文字,我们想 ...

  2. 【Codeforces Round #411 (Div. 1)】Codeforces 804C Ice cream coloring (DFS)

    传送门 分析 这道题做了好长时间,题意就很难理解. 我们注意到这句话Vertices which have the i-th (1 ≤ i ≤ m) type of ice cream form a ...

  3. poj3050【dfs】

    题意: 5*5的矩阵里,某个点能够上下左右走,走5步,然后路径会形成一个串,问你,这个5*5里面能够形成多少个不同个串. 思路: 直接暴搜,然后对于一个串塞到set里去,然后输出set里的个数就好了 ...

  4. hdoj1394

    题意还告诉我们是0-n-1之间的数,那么我们每次把一个数放到后面去,求一下比他大的,还有比他小的: 比如: 1 3 6 9 0 8 5 7 4 2 逆序数num:22 3 6 9 0 8 5 7 4 ...

  5. hdu 3038 How Many Answers Are Wrong【带权并查集】

    带权并查集,设f[x]为x的父亲,s[x]为sum[x]-sum[fx],路径压缩的时候记得改s #include<iostream> #include<cstdio> usi ...

  6. Python之单元测试——HTMLTestRunner

    前置条件:把HTMLTestRunner.py文件拷贝到External Libraries—>site-packages里面 import unittestimport HTMLTestRun ...

  7. bzoj 5019 [Snoi2017]遗失的答案

    题面 https://www.lydsy.com/JudgeOnline/problem.php?id=5019 题解 如果L不是G的倍数 答案为0 下面考虑G|L的情况 将G,L质因数分解 设$L= ...

  8. AtCoder Grand Contest 008 D - K-th K

    题目传送门:https://agc008.contest.atcoder.jp/tasks/agc008_d 题目大意: 给你一个长度为\(N\)的序列\(A\),请你构造一个长度为\(N^2\)的序 ...

  9. N Queen Again LightOJ - 1061

    N Queen Again LightOJ - 1061 首先预处理(或打表)出所有八皇后的解法(只有92种).然后枚举目标状态,对于每一个目标状态用一个状压dp求出到达那个状态的最小费用.到达任何一 ...

  10. Linux Export命令

    一.Windows 环境变量 1.在Windows 系统下,很多软件安装都需要配置环境变量,比如 安装 jdk ,如果不配置环境变量,在非软件安装的目录下运行javac 命令,将会报告找不到文件,类似 ...