PL/SQL--Procedure(过程)和Function(函数)的区别

                                                                    过程和函数的区别:

过程

函数

使用关键字 procedure 声明

使用关键字 function 进行声明

都可以使用 IN/OUT/IN-OUT 格式的参数

在定义的时候,不需要进行 return( 返回值 )

需要指定使用 return 定返回值的类型

都可以由声明、执行、异常处理三个部分组成

可以作为独立的 PL/SQL 语句单独执行

在 PL/SQL 中必须指定变量接收返回,必须在表达式中使用

可以在内部包含 RETURN 子句,类似 JAVA 中的使用

必须包含一个有效的 RETURN 子句

在 COMMAND 命令窗口中,使用 EXECUTE 命令执行过程

借用 select 语句来执行

在 DDL 和 SELECT 语句中不可以调用过程

在 DDL 和 SELECT 语句中可以调用函数

              都可以使用 CALL 参数来调用相应的函数或过程 :

              V_SQL_F := 'CALL TEST_FUNC_P(:P_1) INTO :V_RESULT';

              V_SQL_P := 'CALL TEST_CALL_P(:P_1)';

              EXECUTE IMMEDIATE V_SQL_F

                              USING IN V_I_P1, OUT V_RESULT;

              EXECUTE IMMEDIATE V_SQL_P

                              USING IN V_I_P1;

都可以使用默认值,都可以使用位置表示法和名称表示法

当需要返回多个值的时候,推荐使用过程

当需要返回一个值的时候,推荐使用函数

 

posted on 2011-12-21 23:13  Coldest Winter  阅读(3171)  评论(0编辑  收藏  举报