当前位置:Gxlcms > 数据库问题 > Oracle procedure/function

Oracle procedure/function

时间:2021-07-01 10:21:17 帮助过:2人阅读

--函数的创建
create function func1(dno number)
return NUMBER--必须带有返回值
is 
  v_max number;--定义返回值
  begin
    select  max(sal) into v_max--赋值
    from emp where deptno= dno;
    RETURN v_max;--返回
  end;
--函数的调用,只能是表达式的一部分,不能单独调用
 select * from emp where sal= func1(10);
 -------------------------------------------------------------------------------
 --创建过程存在则替换,带输出参数
 create or replace procedure proc1(dno in number,maxsal out number)
 is
  v_maxsal number;
 begin
  select max(sal) into v_maxsal
  from emp where deptno= dno;
  maxsal := v_maxsal;--给输出参数赋值
  dbms_output.put_line(v_maxsal);--打印
 end;
 
 --调用过程
 declare maxsal number;
 begin
  proc1(10,maxsal);
  dbms_output.put_line(maxsal);
 end;
--------------------------------------------------------------------------------
/*
 创建返回多行的存储过程
*/
create or REPLACE procedure proc_test
is
begin
   DECLARE cursor cc is SELECT * from emp;--这里定义一个游标集合变量cc
   begin
      
      for r in cc loop--对游标cc进行遍历
         dbms_output.put_line(r.ename || ‘:‘ || r.sal);
      end loop;--结束遍历
   end;
   end;
   ---调用
   begin
    proc_test();
   end;

  1.函数必须是和语句一起执行,不能被单独执行,必须有返回值。

      2存储过程 可以被单独执行,没有返回值。

Oracle procedure/function

标签:

人气教程排行