我试图了解pl/sql过程和函数之间的区别,发现了这个链接http://it.toolbox.com/blogs/oracle-guide/learn-plsql-procedures-and-functions-13030。首先让我告诉你开发人员通常如何使用pl/sql过程和函数:
1)想要获取一些返回值。他可以在函数和过程中都实现。使用函数如果他想要返回一个单值,他可以使用return语句。如果他想要返回多个值,则可以使用inout参数来实现。类似地,他也可以从过程中使用inout参数获取返回值(而不是使用return语句)。
但对于开发人员来说,只要能够通过return语句或inout参数实现其意图,就没有任何区别。
所以在这里两者都可以互换使用。
2)他可以在函数和过程中都使用DML。因此,在这里,他可以使用其中任何一个来更改数据库的状态。
所以我没有得到任何明确的理由,应该在哪里使用哪个,因为在某些情况下两者都可以互换。
我找到的唯一合理的理由是,函数可以从SQL中调用,而过程不能。
有人能解释一下何时以及为什么使用哪个吗?