oracle笔记(6.3)

一、复习
1、  PL/SQL
Declare
   变量定义          变量定义:变量名 类型:=值;
begin
   程序              例:set serverout on;
                         dbms_output.put_line(‘ ’);
exception
end;  

 

(a) 条件结构
  if __ then        if __ then       case__  
end if;             elsif              when__ then
                  end if;             else__
                                    end;
(b) 循环控制
  while__ loop     for__ loop
….                ……
End loop;           end loop;

 

二、while for的用法
     declare
v_num int:=1;
v_sum int:=0;
                        begin
                               while v_num<=10 loop
v_sum:=v_sum+v_num;
v_num:=v_num+1;
                               end loop;
                        end;
               /

 

          
     declare
v_num int:=1;
v_sum int:=0;
                        begin
                               for v_num in 1..10 loop
v_sum:=v_sum+v_num ;
                               end loop;
                        end;
               /
三、游标
1、 
cursor

定义游标(cursor  
游标指向结果集

 

 

 

2、  打开游标 open

 

3、  使用游标 fetch : 游标向后移一行
%found :判断游标所指这一行有数据
   %not found : 判断游标所指这一行没有数据
4、  关闭游标 close

 

例:打印emp中所有记录
1)使用while循环
declare
   cursor cur_emp is select * from emp;   (定义游标)
   v_emp emp%rowtype;
begin
   if cur_emp%isopen then        (打开游标)
      null;
   else
      open cur_emp;
   end if;
   fetch cur_emp into v_emp;     (游标往下移一行) (使用游标)③
   while cur_emp%found  loop  (判断游标所指这一行若有数据则进入while)
      dbms_output.put_line(v_emp.ename);   (打印)
      fetch cur_emp into v_emp;  (游标往下移一行)
   end loop;
   if cur_emp%isopen then        (关闭游标)
     close cur_emp;      
   end if;
end;
   /
(2)       使用for循环       for循环中使用游标时自带开、关和向下移一行,无需重新写开、关和fetch语句
declare            
          cursor cur_emp is select * from emp;
          (v_emp emp%rowtype;)     ( 临时变量可以不用定义)
begin
   for v_emp in cur_emp loop
      dbms_output.put_line(v_emp.ename);
   end loop;
end;
/
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章