`
蓝色飞扬
  • 浏览: 93016 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Oracle存储过程中执行3种循环语句

阅读更多

本文转载自:http://hi.baidu.com/wkcs520/blog/item/7e06a0514fe3f9868d543027.html

 

create or replace procedure pr_zhaozhenlong_loop
/*
名称:在存储过程中执行3种循环语句
功能:利用循环给表中插入数据
调用:
       begin
         -- Call the procedure
         pr_zhaozhenlong_strsql;
       end;
*/
is
      i int;
begin
      i :=1;
      loop
          insert into tb_zhaozhenlong(rpt_date ,dept_id,item,qty) values(to_date('2007-01-01','yyyy-MM-dd'),'D'||i,'I'||i,round(i*100/3,3));
          exit when i =10;
          i :=i+1;
      end loop;
      --
      i :=1;
      while i<=5 loop
          insert into tb_zhaozhenlong(rpt_date ,dept_id,item,qty) values(to_date('2007-01-02','yyyy-MM-dd'),'D'||i,'I'||i,round(i*200/3,3));
          i :=i+1;
      end loop;
      --如果指定了reverse选项,则循环控制变量会自动减1,否则自动加1
      for j in reverse   1..10 loop
          --insert into tb_zhaozhenlong(rpt_date ,dept_id,item,qty) values(to_date('2007-01-03','yyyy-MM-dd'),'D'||j,'I'||j,round(j*300/3,3));
          insert all --first,不会被重复插入
          when i <> 2 then into tb_zhaozhenlong(rpt_date ,dept_id,item,qty)
          else into tb_temp_zhaozhenlong(rpt_date ,dept_id,item,qty)--如果两个表结构完全一样,则列举不用列名
          select to_date('2007-01-02','yyyy-MM-dd')as rpt_date,'D'||j as dept_id,'I'||j as item,round(j*300/3,3) as qty from dual;
      end loop;
      commit;

      --???????
      <<outer_zzl>>--??????
      for x in   1..10 loop
          <<inner_zzl>>
          for y in 1..100 loop
          i :=x*y;
          exit outer_zzl when i=500;
          exit when i =300;
          end loop inner_zzl;
          --<<inner_zzl>>
      end loop outer_zzl;
      --<<outer_zzl>>
end;
/

分享到:
评论

相关推荐

    oracle存储过程

    存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令。 定义总是很抽象。存储过程其实就是能完成一定操作的一组SQL语句,只不过这组语句是放在数据库中的(这里我们只谈SQL Server)。如果我们通过创建存储...

    Oracle数据库存储过程技术文档.doc

    第一章 oracle存储过程概述 2 1.1 存储过程基本结构(PROCEDURE) 3 1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包...

    存储过程(循环插入数据)

    使用for loop向表中批量插入数据,推荐使用plsql执行,Dbvisualizer语句执行会出错

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 易懂

    C# 访问Oracle示例+PL/SQL+存储过程+触发器 完整示例 测试可用 --PL/SQL基础1 declare begin dbms_output.('不输出不换行'); dbms_output.put_line('输出并换行'); end; --PL/SQL基础2 declare dig number(20,...

    精通sql结构化查询语句

    讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中的具体应用。...

    Oracle SQL高级编程(资深Oracle专家力作,OakTable团队推荐)--随书源代码

    她是Oracle ACE,也是OakTable(Oracle社区中著名的“Oracle科学家”的非正式组织)的成员,经常在技术会议上演讲。她的著作还包括 Expert Oracle Practices和Beginning Oracle SQL,博客主页是karenmorton....

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    Oracle中权限主要分为两种,系统权限和实体权限。  系统权限:系统规定用户使用数据库的权限。(系统权限是对用户而言)。  DBA: 拥有全部特权,是系统最高权限,只有DBA才可以创建数据库结构。  RESOURCE:...

    Oracle数据库、SQL

    1.1表是数据库中存储数据的基本单位 1 1.2数据库标准语言 1 1.3数据库(DB) 1 1.4数据库种类 1 1.5数据库中如何定义表 1 1.6 create database dbname的含义 1 1.7安装DBMS 1 1.8宏观上是数据--&gt;database 1 1.9远程...

    批量执行sql语句的方法

    代码如下:DECLARE @MyCounter INT SET @MyCounter = 0 /*设置变量*/ WHILE (@MyCounter &lt;... 您可能感兴趣的文章:在SQL Server启动时自动执行存储过程。提高SQL的执行效率的ASP的五种做法asp在线

    Oracle Database 11g初学者指南--详细书签版

    5.7 如何创建存储过程以及创建存储过程的原因 146 5.8 函数的创建和使用 149 5.9 调用PL/SQL程序 151 5.10 本章测验 152 第6章 数据库管理员 153 6.1 了解DBA的工作 154 6.2 执行日常操作 154 6.2.1 体系结构...

    Oracle从基础到熟练(太实用了)

    ⑤:循环语句 ⑥:执行计划 八.游标 ①:隐式游标 ②:显式游标 ③:REF游标 ④:使用游标的好处和坏处 十.子程序[proc,udf],自主事务处理和程序包 ①:存储过程 ②:函数 ③:自主事务处理 ④:包规范|包主体 十一....

    oracle数据库经典题目

    系统权限提供了在Oracle数据库系统范围内执行某种任务的操作能力,而对象权限则是一种赋予用户在指定的数据库对象(如表、视图、过程等) 16. Oralce数据库在进行物理备份有联机备份和脱机备份两种方式可供选择。 ...

    ORACLE11G宝典.rar 是光盘里面的内容,书太厚咧没法影印啊

     5.4 SQL语句的执行过程  5.4.1 基本阶段  5.4.2 流程图  5.5 在OEM中查询内存参数与数据字典视图  5.5.1 查询内存参数  5.5.2 在OEM中查询初始化参数  5.5.3 查询数据字典视图  5.6 小结  第6章 ...

    Oracle 10g 开发与管理

    7.7循环语句 63 1.“直到”循环 63 2.当型循环(While) 63 3.计数型循环(For) 63 7.8游标 64 (一)隐式游标 64 1.含义: 64 2.游标的属性:(获取游标的状态) 64 3.另一种隐式游标 64 (二)显示游标 64 1.声明...

    oracle教案(doc)+SQL Reference 10g(chm).rar

    7.10.2 存储过程的建立及执行 114 7.10.3 调用存储过程的方法 114 7.10.4 带参数的存储过程 114 7.10.5 删除存储过程 114 7.11 函数 114 7.11.1 创建函数 114 7.12 触发器 114 7.13 树状结构的存储与展示 114 7.13.1...

    Oracle8i_9i数据库基础

    §16.2.3.2 对存储过程程序进行解释 279 §16.2.3.3 调试源码直到正确 279 §16.2.3.4 授权执行权给相关的用户或角色 279 §16.2.4 与存储过程相关数据字典 280 §16.3 创建函数 281 §16.4 过程和函数中的例外处理 ...

    oracle数据库11G初学者指南.Oracle.Database.11g,.A.Beginner's.Guide

    5.7 如何创建存储过程以及创建存储过程的原因 5.8 函数的创建和使用 5.9 调用PL/SQL程序 5.10 本章 测验 第6章 数据库管理员 6.1 了解DBA的工作 6.2 执行日常操作 6.2.1 体系结构和设计 6.2.2 容量规划 6.2.3 备份...

    Oracle9i的init.ora参数中文说明

    说明: 在 SQL 语句中, 应避免使用繁琐的 NLS_SORT 进程。正常情况下, WHERE 子句中进行的比较是二进制的, 但语言比较则需要 NLSSORT 函数。可以使用 NLS_COMP 指定必须根据NLS_SORT 会话参数进行语言比较。 值范围:...

Global site tag (gtag.js) - Google Analytics