精华内容
下载资源
问答
  • 我现在写了一个代码 代码中for循环循环中有个查询语句,如果循环次数多会很慢;给大神详细解释下: ``` select STAFF_ID from APP_USER_2_ROLE where ROLE_ID='4' and AREA_CODE='09' ``` 这个查询的结果是多条...
  • Oracle循环语句的几种用法

    万次阅读 2018-06-20 22:45:45
    Oracle中主要有以下五种循环——Exit When、Loop、While、For(普通循环)、For(游标循环): 1、Exit When循环: create or replace procedure proc_test_exit_when is i number; begin i := 0; LOOP Exit When...

    Oracle中主要有以下五种循环——Exit When、Loop、While、For(普通循环)、For(游标循环):

    1、Exit When循环:

    create or replace procedure proc_test_exit_when is
      i number;
    begin
      i := 0;
      LOOP
        Exit When(i > 5);
        Dbms_Output.put_line(i);
        i := i + 1;
      END LOOP;
    end proc_test_exit_when;

    2、Loop循环:

    create or replace procedure proc_test_loop is
      i number;
    begin
      i := 0;
      loop
        i := i + 1;
        dbms_output.put_line(i);
        if i > 5 then
          exit;
        end if;
      end loop;
    end proc_test_loop;
    

    3、While循环:

    create or replace procedure proc_test_while is
      i number;
    begin
      i := 0;
      while i < 5 loop
        i := i + 1;
        dbms_output.put_line(i);
      end loop;
    end proc_test_while;

    4、For普通循环:

    create or replace procedure proc_test_for is
    i number;
    begin
    i:=0;
    for i in 1..5 loop
    dbms_output.put_line(i);
    end loop;
    end proc_test_for;

    5、For游标循环:

    create or replace procedure proc_test_cursor is
      userRow test%rowtype;
      cursor userRows is
        select * from test;
    begin
      for userRow in userRows loop
        dbms_output.put_line(userRow.id || ’,
                             '||userRow.Name||’,' || userRows%rowcount);
      end loop;
    end proc_test_cursor;

    上面所示为存储过程相应代码,可以通过如下方式进行测试:

    进入pl/sql, 执行 文件->新建->程序窗口->空白,拷贝以上各段代码,到pl/sql空白窗口中,安F8执行编译。

    再执行 文件->新建->命令窗口 进入命令窗口 执行一下 set serveroutput on 这句代码,然后,输入exec 相应存储过程,ok。

    5中循环需要新建一个名为test的表,字段 id、name,插入几条数据,进行测试即可。

    展开全文
  • Oracle 的 条件循环语句

    千次阅读 2018-10-08 14:11:38
     If语句 DECLARE a number(2) := 10; BEGIN a:= 10; -- check the boolean condition using if statement IF( a &lt; 20 ) THEN -- if condition is true then print the following db...

     

     If语句

    DECLARE
       a number(2) := 10;
    BEGIN
       a:= 10;
      -- check the boolean condition using if statement 
       IF( a < 20 ) THEN
          -- if condition is true then print the following  
          dbms_output.put_line('a is less than 20 ' );
       END IF;
       dbms_output.put_line('value of a is : ' || a);
    END;
    

    DECLARE
       a number(3) := 100;
    BEGIN
       IF ( a = 10 ) THEN
          dbms_output.put_line('Value of a is 10' );
       ELSIF ( a = 20 ) THEN
          dbms_output.put_line('Value of a is 20' );
       ELSIF ( a = 30 ) THEN
          dbms_output.put_line('Value of a is 30' );
       ELSE
           dbms_output.put_line('None of the values is matching');
       END IF;
       dbms_output.put_line('Exact value of a is: '|| a ); 
    END;

     Case语句

    DECLARE
       grade char(1) := 'A';
    BEGIN
       CASE grade
          when 'A' then dbms_output.put_line('Excellent');
          when 'B' then dbms_output.put_line('Very good');
          when 'C' then dbms_output.put_line('Well done');
          when 'D' then dbms_output.put_line('You passed');
          when 'F' then dbms_output.put_line('Better try again');
          else dbms_output.put_line('No such grade');
       END CASE;
    END;

     

     Loop  end loop

    --找出2~100的素数
    DECLARE
       x number := 10;
    BEGIN
       LOOP
          dbms_output.put_line(x);
          x := x + 10;
          IF x > 50 THEN
             exit;
          END IF;
       END LOOP;
       -- after exit, control resumes here
       dbms_output.put_line('After Exit x is: ' || x);
    END;

     

    DECLARE
       a number(2) := 10;
    BEGIN
       WHILE a < 20 LOOP
          dbms_output.put_line('value of a: ' || a);
          a := a + 1;
       END LOOP;
    END;

    DECLARE
       i number(3);
       j number(3);
    BEGIN
       i := 2;
       LOOP
          j:= 2;
          LOOP
             exit WHEN ((mod(i, j) = 0) or (j = i));
             j := j +1;
          END LOOP;
       IF (j = i ) THEN
          dbms_output.put_line(i || ' is prime');
       END IF;
       i := i + 1;
       exit WHEN i = 50;
       END LOOP;
    END;

     

    EXIT语句有以下两种用法:
    
        当循环中遇到EXIT语句循环立即终止,程序控制继续下一个循环语句后面。
    
        如果使用嵌套循环(即一个循环内的另一个循环),EXIT指令将停止最内层循环的执行,并开始执行的下一行代码的程序段之后。
    
    CONTINUE:
    语句使循环跳过其身的其余部分,并立即重新测试其使用条件重申之前。换句话说,它会强制循环的下一次迭代发生,跳过其间的任何代码

     

    展开全文
  • oracle数据库循环语句

    千次阅读 2017-05-09 19:46:50
    oracle语句中主要分为5中循环语句:  主要为 loop, exit when ,while , for 普通循环,for 游标循环。 循环语句 1.loop循环语句  create or replace procedure proc_test_loop is  

    oracle语句中主要分为5中循环语句:

         主要为 loop, exit when ,while ,  for  普通循环,for 游标循环。

    循环语句

    1.loop循环语句    

                                  create or replace  procedure   proc_test_loop  is
                        i number;
                       begin
                                i:=0;
                                loop
                                      i:=i+1;
                                      dbms_output.put_line(i);
                                      if i>5 ten  
                                        exit;
                                      end if;
                                 end loop;
                        end proc_test_loop;

    2.exit   when 循环

               create or replace procedure  proc_test_exit_when is
                  i number;
               begin 
                     i:=0;
                    loop
                     exit when (i>5);
                     dbms_output.put_line(i);
                     i:=i+1;
                     end loop
              end proc_test_exit_when;

    3.while循环

             create or replace procedure proc_test_while is
               i number;
              begin

                  i:=0;

                  while i<5 loop
                  dbms_output.put_line(i);
                  i:=i+1;
                  end  loop;
            end  proc_test_while;

    4.for 普通循环

       
             create  or replace  procedure proc_test_for is
               i number;
             begin
                   i:=0;
                   for i  in 1..5  loop
                  end loop;
            end proc_test_for;

    5.for 游标循环(cursor)

          
            create  or replace procedure proc_test_cursor is
             
                  Cursor  mycursor is
                   select * from  test;
             begin
                   for  item  in mycursor  loop
                    dbms_output.put_line(item.id||','||item.name||','||,item.number);
                   end  loop;
             end proc_test_cursor;
                  
                     
          都是以存储过程来进行测试的,希望能帮到大家的学习,有不足的地方还请多多指教!
                                                          
    展开全文
  • oracle查询结果作为参数for循环,将结果插入到临时表中 for in 循环 for in 例子 for i in 1 .. 100 loop str := str + i; end loop; sys.dbms_output.put_line(str ); 将结果存入变量中 FOR i IN (select id,...

    oracle将查询结果作为参数for循环,将结果插入到临时表中

    for in 循环

    for in 例子
     for i in 1 .. 100 loop
    	str := str + i;
      end loop;
    sys.dbms_output.put_line(str );
    
    将结果存入变量中
    FOR i IN (select id,name from test)LOOP
    BEGIN
    --拼接 动态参数sql 
    V_SQL := ' select * from  student  where id =' || i.id  || ' and name=' || i.name
    EXECUTE IMMEDIATE V_SQL INTO V_ID,V_NAME; --执行查询语句
    INSERT INTO TEMP (id,name) (V_ID,V_NAME);--插入临时表
     END;
      END LOOP;
    
    展开全文
  • Oracle循环语句及例子(几种循环语句的语法)
  • 主要介绍了MySQL与Oracle 差异比较之四条件循环语句,需要的朋友可以参考下
  • Oracle循环插入

    2012-06-28 17:31:08
    Oracle循环插入,用于添加测试数据。
  • Oracle 循环查询

    2018-03-05 11:22:00
    select * from sys_department start with departmentid = '0303e461-2454-4d5a-bfea-2cd5a4c064c6' connect by prior departmentid = parentid 转载于:...
  • Oracle循环语句

    千次阅读 2017-04-29 16:50:50
    PL/SQL中的循环语句主要包括loop语句、while语句和for语句3种。 1、loop语句 loop语句会先执行一次循环体,然后在判断“exit when”关键字后面的条件表达式的值是true还是false,如果是true,则程序会退出循环体,...
  • ORACLE 才接触,不是很了解,要测试一个数据,慢慢插入数据太麻烦了 从网上找的一些资料,结合实际,试验成功了,下面是一些代码 。 declare i number; /*定义一个变量I*/ begin for k in 600..610 /* 从...
  • oracle基础积累-for循环中使用子查询

    千次阅读 2019-09-14 12:41:51
    for循环中使用子查询 环境: Oracle Database 11g; PL/SQL Developer 1.for循环中使用子查询存储过程 CREATE OR REPLACE PROCEDURE PRO_TEST_CURSOR_FOR2(ERRORMSG OUT VARCHAR2) IS BEGIN BEGIN ERRORMSG := '...
  • Oracle数据库的循环建表语句及多表循环插入语句 --建多张表的存储过程 create or replace procedure createtables is i number (10) :=1; begin for i in 1..10 loop execute immediate 'create table zry'||i...
  • Oracle LOOP循环控制语句

    千次阅读 2019-12-25 18:04:12
    常用的LOOP循环语句包含3种形式:基本的LOOP、WHILE...LOOP和FOR...LOOP。 LOOP语句的基本语法结构如下: [<<label_name>>] LOOP statement... END LOOP [label_name] 【语法说明】 ...
  • 1.查询返回单行记录时→隐式游标; 2.查询返回多行记录并逐行进行处理时→显式游标 –显示游标属性 declare CURSOR cur_emp IS SELECT * FROM emp; row_emp cur_emp%ROWTYPE; BEGIN OPEN cur_emp; FETCH cur_emp ...
  • 应该不是程序的问题,跟机器...在服务器部署之后for循环查询很慢很慢(整个循环下来大概需要30-60秒),而我在自己电脑 上测试发现for循环查询过程不到2秒,请问这个问题的解决思路大概在哪?是不是跟oracle 有关系?
  • Oracle loop 循环查询

    千次阅读 2020-04-03 14:16:04
    Oracle loop 循环查询。 1. 拼接字符串 || 2. 字符串类型 ‘’20200402‘’ 3. 动态SQL执行 EXECUTE IMMEDIATE 3. 查询结果赋值给变量EXECUTE IMMEDIATE INTO args(args变量) 4.IF ELSE ==> IF 条件 THEN ...
  • Oracle中sql语句循环插入

    千次阅读 2014-05-02 17:58:22
    DECLARE  i number:=0; BEGIN  for i in 1..100 loop  insert into EMP (ID, NAME, PASSWORD, AGE)values (SEQ_ID.NEXTVAL, 'test', '54321', 22);  commit;  d
  • PL/SQL 中的循环语句主要包括LOOP语句、WHERE语句和FOR语句3种。本篇博客主要讲解这三种用法及代码示例。 本篇博客主要围绕 基本语法、简单代码示例,以及实战上常用的示例,这三点来讲解,学习循环看这一篇足够了。...
  • oracle 查询语句decode()用法

    千次阅读 2019-02-01 12:14:40
    decode 的使用看上去和case when 有点类似 sum(decode( 条件 ,条件值, 输出值,条件值 ,输出值) ) sum(decode( HO_USE_VALUE ,‘1’ , HO_SINGLE_NUMBER * HO_SINGLE_PRICE,‘2’ ,HO_SINGLE_NUMBER * SALES_PRICE ) ...
  • oracle 循环语句总结 break continue
  • Oracle判断循环语句

    2015-01-21 14:51:13
    语句一: IF-THEN IF 条件 THEN  执行语句 END IF;   语句二: IF-THEN-ELSE IF 条件 THEN  执行语句 ELSE  执行其他语句 END IF;   语句三: IF-THEN-ELSIF IF 条件1 THEN  执行语句1 ELS
  • Oracle中,for循环,if语句,应用实例

    千次阅读 2018-05-04 09:21:38
    场景:需要找出某个序列中未被使用的序列值,并插入临时表中备用,同时临时表中需要生成自己的主键... 101000 loop --查找这个范围内未被使用的序列值,i本是控制循环次数,这里也同时被用于待检查的序列值。 sele...
  • Orcle高级查询 基本查询 ...联合语句 union 查询 union all 查询 intersect 查询 minus 查询 联接查询 等值联接 不等值联接 内连接 外联接 左联接 右连接 完全连接 自连接 层次化查询 ...
  • Oracle:PLSQL——循环语句

    千次阅读 2018-05-17 10:41:36
    格式一:WHILE 条件 LOOP 语句 END LOOP;格式二:LOOP exit[when条件成立]; ------------------&gt;条件成立退出 语句; end loop;格式三:FOR I IN 1..3 ----...例1:使用loop循环显示1-10;declare i ...
  • 本篇文章是对oracle导出sql语句的结果集与保存执行的sql语句进行了详细的分析介绍,需要的朋友参考下
  • 条件选择语句(IF,CASE)、循环语句(LOOP、WHILE和FOR)和顺序控制语句(GOTO,NULL)。1、IF条件选择语句1.1 简单条件判断 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 DECLARE v_salNUMBER(6,2); BEGIN ...
  • for item in (查询sql) loop--要循环处理的代码end loop;相当于foreach循环
  • oracle 循环insert

    千次阅读 2017-07-14 14:21:21
    BEGIN for i in 1..10000 loop insert into BN_USER(USER_ID,USER_PHONE,USER_SEX,REGISTER_TIME,WECHAT) values(BN_USER_REQUENCE.NEXTVAL,i,0,sysdate,'oHOlkwWViA6GuFRkcd0tPFTxmPM4'||i); ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 66,279
精华内容 26,511
关键字:

oracle循环查询语句