oracle存储过程,游标定义,匿名块已完成,dbms_output控制块输出

create  table  emp 
( id varchar2(10),
name  varchar2(20),
sex number,
duty varchar2(20)
);
 
insert  into  emp  values ( '001' , 'Tom' ,1, 'gcs' );
insert  into  emp  values ( '002' , 'John' ,1, 'dba' );
insert  into  emp  values ( '003' , 'Jean' ,0, 'gcs' );
insert  into  emp  values ( '004' , 'Reid' ,1, 'gcs' );
commit ;
 
 
create  or  replace  procedure  pro6  as  --创建存储过程pro6
 
   cursor  cr  is   --定义游标
     select  *
       from  emp
      where  sex = 1
        and  duty =  'gcs' ;
begin
   for  cr_result  in  cr loop
     begin
       dbms_output.put_line( 'ID: '  || cr_result.id ||  ' NAME: '  ||
                            cr_result. name );
     
     end ;
   end  loop;
end  pro6;

执行存储过程并输出
set serveroutput on;  -- 这个只能在SQL PLUS里面使用,意思是在窗口里显示服务器输出信息, 不执行此语句会显示匿名块已完成,而不会有输出内容
BEGIN
  PRO6(); 
END;

你可能感兴趣的:(oracle)