Oracle PL/SQL 函数

SQL> remark 函数:函数的定义
SQL> create or replace function MyAdd(A int ,B int) return int
  2  as
  3  begin
  4  return A+B;
  5  end;
  6  /

Function created.

SQL> remark 函数类似于过程。两者都带有参数,都有声明、可执行以及异常处理部分的PL SQL 语句块,两者都可以存储在数据库中或在块中声明;
SQL> remark 两者的不同:过程调用本身是一个PL-SQL语句,而函数调用是作为表达式的一部分执行的;
SQL> remark 注:函数的参数表是可选的,并且函数的声明部分和调用都没有使用括弧。由于函数是表达式的一部分,所以函数的返回类型是必须要有的;
SQL> remark 函数的使用:
SQL> remark ..........
SQL> remark 函数的调用有两种方式:1.在SQL语句中调用函数 2.在PL SQL 中调用;
SQL> select empno ,ename MyAdd(sal,300),sal from emp where deptno=30;
select empno ,ename MyAdd(sal,300),sal from emp where deptno=30
                        
MYADD(20,30)                                                                   
------------                                                                   
          50                                                                   
          50                                                                   
          50                                                                   
          50                                                                   
          50                                                                   
          50                                                                   

6 rows selected.

SQL> remark 函数在PL SQL中调用必须要使用一个参数接收函数的返回值
SQL> declare
  2  result int:=100;
  3  begin
  4  result :=MyAdd(32,16);
  5  dbms_output.put_line(result);
  6  end;
  7  /

PL/SQL procedure successfully completed.

SQL> remark 过程 与函数之间的比较:
SQL> remark 通常情况下我们使用存储过程处理表数据操作,而使用函数对函数形参传入的值做计算。当然在函数中也可以查询表数据,但这种函数通常不建议使用在SQL查询语句中,在函数中也可以修改表数据,但这种函数只能在PL SQL中被调用;
SQL> spool off;
[color=red][/color][size=xx-large][/size]

猜你喜欢

转载自sunzone.iteye.com/blog/1829056