oracle自定义函数demo分享

oracle自定义函数demo分享

create or replace function f1(id int)
return varchar2
as
       ename1 varchar2(20);
begin
  select ename into ename1 from emp where empno=id;
  return ename1;
end;
--调用
declare
  id int:=7900;
begin  
  dbms_output.put_line( f1(id));          --函数不是存储过程,不能直接调用
end;

--存储过程和游标的结合使用
create or replace procedure p7(salary int)         --salary 定义的工资目标
as
       cursor curs1 is select * from emp01 where sal<salary;
       emper emp01%rowtype;
begin
  open curs1;  
  loop 
    fetch curs1 into emper;
    exit when curs1 % notfound;
    if emper.sal < salary then  --注意此处的判断条件,要使用emper而不是emp01表
      update emp01 set sal=sal*1.1 where empno=emper.empno;
    end if;
    if emper.sal*1.1 < salary then 
      update emp01 set sal=salary where empno=emper.empno;                 
    end if;                     
  end loop; 
  close curs1;
end;
--调用
declare
begin
  p7(968);
end;       
(0)
上一篇 2022年3月22日
下一篇 2022年3月22日

相关推荐