Oracle数据库存储过程和函数的区别

存储过程

函数

作为PL/SQL语句执行

作为表达式的一部分调用

在规范中不包含RETURN子句

必须在规范中包含RETURN子句

不返回任何值

必须返回单个值

可以包含RETURN语句,但是与函数不同,它不能用于返回值

必须包含至少一条RETURN语句

存储过程使我们可以在SQL命令中直接执行execute命令调用存储过程,也可以在PL/SQL语句中执行存储过程使用限制少一些,功能也强大,但是却不能直接引用返回值,而函数的限制较多,功能也少,但是可以直接引用返回值,因此存储过程多用于复杂的数据计算,而函数则是更模块化。