日期:2014-05-16  浏览次数:20474 次

oracle我以前的资料2.1
/********************1用循环计算工资总和******************************/
declare
  type emp_cur is ref cursor;
  v_cur emp_cur;
  v_type naemp%rowtype;
  v_sum naemp.EMPSAL%type;
begin
  open v_cur for select * from naemp where empdeptno=30;
  fetch v_cur into v_type;
    while v_cur%found
      loop
        v_sum:=v_sum+v_type.empsal;
      end loop; 
  close v_cur;
end;



/***************************2用游标列出所有信息******************************/
declare
  type emp_cur is ref cursor;
  v_cur emp_cur;
  v_type naemp%rowtype;
begin
  open v_cur for select * from naemp;
  fetch v_cur into v_type;
  while v_cur%found
    loop
      dbms_output.PUT_LINE(v_type.empdeptno||' '||v_type.empno);
    end loop;
 
end;
/**********************************3用联合数组打出所有信息**********************/
declare
  type t1 is table of naemp%rowtype index by binary_integer;
  tt t1;
begin
  select empno,empname,empdeptno,empsal,empmanager  bulk collect into tt from naemp;
  for i in 1..tt.count
    loop
      dbms_output.PUT_LINE(tt(i).empno||' '||tt(i).empname||' '||tt(i).empdeptno||' '||tt(i).empsal||' '||tt(i).empmanager);
    end loop; 
end;