PL/SQL练习函数

Posted Tomatoes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PL/SQL练习函数相关的知识,希望对你有一定的参考价值。

1、必须返回一个值
2、只能在表达式调用

SQL> create or replace function fun1
  2   return number
  3  is
  4    v_sum_sal emp.sal%type;
  5  
  6   begin
  7     select sum(sal) into v_sum_sal from emp where deptno=10;
  8     return v_sum_sal;
  9   end;
 10  /
Function created

SQL> 
SQL> declare
  
  4    v_sumsal emp.sal%type;
  5  
  6  begin
  7  
  8     v_sumsal := fun1;
  9     dbms_output.put_line(v_sumsal);
 10  
 11  end;

带有参数的函数:

IN:

SQL> create or replace function fun1
  2  ( v_deptno in number)
  3   return number
  4  is
  5    v_sum_sal emp.sal%type;
  6  
  7   begin
  8     select sum(sal) into v_sum_sal from emp where deptno=v_deptno;
  9     return v_sum_sal;
 10   end;
SQL> declare
  2    v_sumsal emp.sal%type;
  3  
  4  begin
  5  
  6     v_sumsal := fun1(10);
  7     dbms_output.put_line(v_sumsal);
  8  
  9  end;

 

OUT:

SQL> create or replace function fun2
  2  
  3   (v_empno number , v_ename out varchar2,v_sal out number)
  4  
  5   return number
  6  
  7   is
  8  
  9   begin
 10  
 11     select ename,sal into v_ename,v_sal from emp where empno=v_empno;
 12     return v_sal;
 13   end;
 14  /
Function created

SQL> declare
  2  
  3     v_salary emp.sal%type;
  4     v_ename emp.ename%type;
  5     v_sal emp.sal%type;
  6  
  7   begin
  8       v_salary := fun2(7369,v_ename,v_sal);
  9       dbms_output.put_line (Salary is: ||v_salary);
 10  
 11   end;

 


以上是关于PL/SQL练习函数的主要内容,如果未能解决你的问题,请参考以下文章

PL/SQL练习命名块: 存储过程函数触发器包

pl/sql基础练习

PL/SQL 上机练习

我啥时候应该在 PL/SQL 中使用过程或函数?

PL/SQL包(package)操作实例讲解

如何将此 pl/sql 更改为函数?