Oracle中for循环的使用方法

Oracle for in loop 循环的一些实例,以作学习和加强使用熟练度及场景应用.

一些技巧

for 语句后面的 loop end loop 可以类比成 c#/java 等编程语言 for 语句后面的语句块符号(花括号{}), 以便理解和使用.

一些实例

循环输出数值

-- 循环输出数值
begin
  for i in 1 .. 100 loop
    sys.dbms_output.put_line(i);
  end loop;
end;

循环累加

-- 循环累加
declare
  var_sum number := 0;
begin
  for i in 1 .. 100 loop
    var_sum := var_sum + i;
  end loop;
  sys.dbms_output.put_line(var_sum); -- 5050
end;

批量插入

-- 批量插入
begin
  for i in 1 .. 100 loop
    -- todo: insert into some_table(field1, field2, ..., fieldN) values(valie1, value2, ..., valueN);
    sys.dbms_output.put_line('insert: ' || to_char(i));
  end loop;
  commit;
  sys.dbms_output.put_line('多次insert,统一commit');
end;

批量更新

-- 批量更新
begin
  for i in 1 .. 100 loop
    -- todo: update some_table set fieldN = valueN where fieldN = valueN;
    sys.dbms_output.put_line('update: ' || to_char(i));
  end loop;
  commit;
  sys.dbms_output.put_line('多次update,统一commit');
end;

循环输出用户表信息

-- 查询你能管理的所有用户信息
select user_id, username, created from all_users;

-- 循环输出用户表信息
begin
  for cur_row in (select user_id, username, created from all_users) loop
    sys.dbms_output.put_line(cur_row.username);
  end loop;
end;
-- 当循环对象是比较长串的SQL时,建议提取游标,方便后续查看和维护

循环输出用户表信息(游标提取)

-- 循环输出用户表信息(游标提取)
declare
  -- 提取游标对象,方便单独维护SQL
  cursor cursor_all_users is
    select user_id, username, created from all_users;
  -- 游标子项(更多的时候,表是动态表,所以这句声明也可以省略)
  -- cursor_user all_users%rowtype;
begin
  for cursor_user in cursor_all_users loop
    dbms_output.put_line(cursor_user.username);
  end loop;
end;

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对我们的支持。如果你想了解更多相关内容请查看下面相关链接

(0)

相关推荐

  • Oracle+Mybatis的foreach insert批量插入报错的快速解决办法

    最近做一个批量导入的需求,将多条记录批量插入数据库中. 解决思路:在程序中封装一个List集合对象,然后把该集合中的实体插入到数据库中,因为项目使用了MyBatis,所以打算使用MyBatis的foreach功能进行批量插入.期间遇到了"SQL 命令未正确结束 "的错误,最终解决,记录下来供以后查阅和学习. 首先,在网上参考了有关Mybatis的foreach insert的资料,具体如下: foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合. foreach

  • Oracle 遍历游标的四种方式汇总(for、fetch、while、BULK COLLECT)

    1.情景展示 Oracle 遍历游标的四种方式(for.fetch.while.bulk collect+forall) 2.问题分析 我们可以把游标想象成一张表,想要遍历游标,就要取到游标的每行数据,所以问题的关键就成了:如何取到行数据? 3.解决方案 方式一:FOR 循环(推荐使用) 变形一:遍历显式游标 /* 如果是在存储过程外使用显式游标,需要使用DECLARE关键字 */ DECLARE   /*创建游标*/   CURSOR CUR_FIRST_INDEX IS     SELECT

  • Oracle三种循环(For、While、Loop)实现九九乘法表

    本文为大家分享了Oracle中三种循环(For.While.Loop)案例,供大家参考,具体内容如下 1.ORACLE中的FOR循环用法(九九乘法表) declare i int:=0; j int:=0; begin for i in 1..9 loop for j in 1..i loop Dbms_Output.put(i||'*'||j||'='||i*j); dbms_output.put(' '); end loop; dbms_output.new_line; end loop;

  • Oracle显示游标的使用及游标for循环

    下面给大家介绍在什么情况下用隐式游标,什么情况下用显示游标: 1.查询返回单行记录时→隐式游标: 2.查询返回多行记录并逐行进行处理时→显式游标 --显示游标属性 declare CURSOR cur_emp IS SELECT * FROM emp; row_emp cur_emp%ROWTYPE; BEGIN OPEN cur_emp; FETCH cur_emp INTO row_emp; WHILE cur_emp%FOUND LOOP dbms_output.put_line(row_

  • Oracle存储过程循环语法实例分析

    本文实例讲述了Oracle存储过程循环语法.分享给大家供大家参考,具体如下: 1.简单循环 语法 loop statements; end loop; 例子: counter := 0; loop counter := counter + 1; exit when counter = 5; end loop; 备注:exit语句立即结束循环,exit when 语句在指定条件出现时停止循环(可以出现在循环代码中的任意位置) 2.while循环 语法 while condition loop st

  • Oracle中for循环的使用方法

    Oracle for in loop 循环的一些实例,以作学习和加强使用熟练度及场景应用. 一些技巧 for 语句后面的 loop end loop 可以类比成 c#/java 等编程语言 for 语句后面的语句块符号(花括号{}), 以便理解和使用. 一些实例 循环输出数值 -- 循环输出数值 begin for i in 1 .. 100 loop sys.dbms_output.put_line(i); end loop; end; 循环累加 -- 循环累加 declare var_sum

  • oracle中decode函数的使用方法示例

    decode的几种用法 1:使用decode判断字符串是否一样 DECODE(value,if1,then1,if2,then2,if3,then3,...,else) 含义为 IF 条件=值1 THEN RETURN(value 1) ELSIF 条件=值2 THEN RETURN(value 2) ...... ELSIF 条件=值n THEN RETURN(value 3) ELSE RETURN(default) END IF sql测试 select empno,decode(empn

  • Oracle 中检查临时表空间的方法

    目录 一.什么是临时表空间 二.oracle创建临时表空间的方法 三.如何在 Oracle 中检查临时表空间 3.1 如何检查 Temp 表空间的大小 3.2 oracle如何查看临时表空间的可用空间 3.3 如何在实例级别检查临时表空间使用情况 3.4 如何查看 Temp 表空间的使用百分比 3.5 如何找到正在使用临时表空间的会话 3.5 如何通过会话检查临时使用情况 3.6 如果我们还想看到正在运行的 sql 3.7 如何使用大量 TEMP 查找会话 四.oracle如何增加临时表空间 4

  • 使用JDBC4.0操作Oracle中BLOB类型的数据方法

    在JDBC4.0推出后,它的从多的特性正在受到广泛地关注.下面通过本文给大家介绍JDBC4.0操作Oracle中BLOB类型的数据的方法. 需要的jar包 使用ojdbc6.jar 在/META-INF/MANIFEST.MF里可以看到Specification-Version: 4.0 建表 create sequence seq_blobmodel_id start with 1 increment by 1 nocache; create table blobmodel ( blobid

  • Oracle中Spool命令的使用方法实例

    前言 对于Oracle中的Spool命令,其实还可以换一种问法为,如何将sqlplus中的结果输出到指定的文件夹中. 近期在进行Oracle数据库备份的时候,由于数据库安装时出现问题,在进行逐步排查过程时,为了方便,将执行的相关语句在控制台的结果信息都输出到日志文件,以便能及时反馈到Oracle相关支持部门进行问题解决. Oracle中Spool 命令使用方法 方法/步骤 首先需要明白Spool是Oracle的命令而不是sql语句. Spool命令是将在这期间oracle所有的操作结果写入到指定

  • Oracle中字符串连接的实现方法

    和其他数据库系统类似,Oracle字符串连接使用"||"进行字符串拼接,其使用方式和MSSQLServer中的加号"+"一样. 比如执行下面的SQL语句: 复制代码 代码如下: SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL 除了"||",Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句: SELECT

  • asp中for循环的使用方法

    循环是指在指定情况下,多次重复执行一组语句.最常用(for -next. do -loop), 1.重复执行的语句叫循环语句.循环语句可以分为三种类型:(1).当条件不为假之前的时候重复执行语句.(2).当条件变为真之前重复执行语句. (3).按指定的次数重复执行语句. 2.For-Next 循环 如果重复操作的次数固定,使用 For-Next 循环是一个很好的选择,此外也将介绍语法很类似的 For Each-Next循环,它适用在数组或集合的重复循环,(一)For-Next 在 For-Nex

  • 详解Python中for循环的使用方法

    for循环在Python中有遍历所有序列的项目,如列表或一个字符串. 语法: for循环语法如下: for iterating_var in sequence: statements(s) 如果一个序列包含一个表达式列表,计算第一个.然后,在序列中的第一项被分配给迭代变量iterating_var.接着,语句块被执行.列表中的每个项目分配给iterating_var,并且statement块被执行,直到整个序列完成(到尾部). 流程图: 例子: #!/usr/bin/python for let

  • oracle中decode函数的使用方法

    含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下: 复制代码 代码如下: IF 条件=值1 THEN RETURN(翻译值1)ELSIF 条件=值2 THEN RETURN(翻译值2) ......ELSIF 条件=值n THEN RETURN(翻译值n)ELSE RETURN(缺省值)END IFdecode(字段或字段的运算,值1,值2,值3) 这个函数运行的结果是,当字段或字段的运算的值等于值1时,该函数返回值2,否则返回值3当

  • oracle中UPDATE nowait 的使用方法介绍

    1.UPDATE nowait 应用以下场景:查询某条数据,并对其开启数据库事务.如果查询的当前数据没有加锁,则正确返回结果,并对当前数据加锁,如果查询的当前数据已在事务中,已加锁.但返回异常信息:提示数据已加锁.SQL语句: Sql代码: 复制代码 代码如下: SELECT * FROM hold_mc_site_product_pic pic WHERE pic.id = 730127 FOR UPDATE nowait 2.应用在多线程并发的情况下.先查询出要处理的数据,并加入数据库级的锁

随机推荐