当前位置: 代码迷 >> SQL >> plsql学习:loop施用
  详细解决方案

plsql学习:loop施用

热度:93   发布时间:2016-05-05 14:34:12.0
plsql学习:loop使用
------example 1: loops with IF statement-----------set serveroutput ondeclare     v_counter binary_integer := 0;    begin      loop        --increment loop counter by one        v_counter := v_counter + 1;        DBMS_OUTPUT.put_line('v_counter = '||v_counter);                --if exit condition yields true exit the loop        if v_counter  = 5 then  -- the same as : exit when v_counter = 5;          exit;        end if;                end loop;        --control resumes here        dbms_output.put_line('Done...');      end;     ------example 2: loops with EXIT WHEN conditions-----------set serveroutput ondeclare    v_course           course.courser_no%type :430;    v_instructor_id    instructor.instructor_id%type :102;    v_sec_num          section.section_no%type :=0;begin    loop      --increment section number by one      v_sec_num := v_sec_num + 1;      insert into section              (section_no,course_no,section_no,instructor_id,             created_date, created_by,modified_date,             modified_by)       values             (section_id_seq.nextval,v_course,v_sec_num,             v_instructor_id,SYSDATE,USER,sysdate,user);       --if number of section added is four exit the loop       exit when v_sec_num = 4;     end loop;          --control resumes here     commit;end;--------exiample 3: loops with WHILE Loops condition---------set serveroutput on declare    c_counter binary_integer := 1;    v_sum     number :=0;    begin      while v_counter <= 10 loop           v_sum := v_sum + v_counter;           dbms_output.put_line('current sum is: '||v_sum);                      -- increment loop counter by one           v_counter := v_counter + 1;      end loop;            -- control resumes here      dbms_output.put_line('the sum of integers between 1 '||                           'and 10 is: '||v_sum);end;---------example 4: loop with For Loops----------set serveroutput ondeclare    v_factorial number := 1;begin    --the loop counter is defined implicitly by the loop    --Therefore,before the loop ,the loop counter is undefined and has no value;    for v_counter in 1..10 loop      v_factorial := v_factorial * v_counter;      end loop;            --countrol resume here      dbms_output.put_line('factorial of ten is :'||v_factorial);end; 
  相关解决方案