任何人都可以解释Oracle中的功能和程序的主要区别是什么?如果我可以用功能做一切,为什么要使用程序?
>如果我不能在sql语句中调用过程,好的,我会写一个函数来做同样的工作。
>程序不返回值,好的,我将只返回sql%rowcount或1(成功),0(异常)后任何dml操作
>程序和函数都可以通过OUT / IN OUT参数将变量传递给调用环境
提前致谢。
区别在于 – 一个函数必须通过默认的定义返回一个值(任何类型的值),而在一个过程的情况下,您需要使用OUT或IN OUT参数来获取结果。您可以使用正常sql中的函数,因为您不能在sql语句中使用过程。
功能和程序之间的差异
>函数总是使用return语句返回一个值,而过程可以通过参数返回一个或多个值,或者根本不返回。尽管OUT参数仍然可以在函数中使用,但是不建议使用一个可能会发现需要这样做。使用OUT参数限制在sql语句中使用的函数。
>函数可以在典型的sql语句中使用,如SELECT,INSERT,UPDATE,DELETE,MERGE,而程序不能。
>函数通常用于计算,其中程序通常用于执行业务逻辑。
> Oracle提供创建“Function Based Indexes”以提高后续sql语句的性能。当查询的where子句中的索引列执行函数时,这适用。