如果我们在plsql过程中有out参数并在函数中返回,那么为什么我们使用过程而不是函数呢?

nqwrtyyt  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(322)

如果我们的plsql过程中只有out参数,那么我们可以使用函数而不是过程,因为函数也可以返回值。如果我们仍然使用过程,那么我们就用这个代替函数。
我希望我能够表达我想问的正确的问题?

mo49yndu

mo49yndu1#

两者之间的一些重要区别如下:
功能:
它可以从sql语句中调用( SELECT , UPDATE , DELETE )
只能返回一个值 DML 不允许在其中进行操作
最适合为一些常见的复杂逻辑选择值。
程序:
不能从sql语句调用它。必须使用pl/sql块才能调用它。
可以返回多个值( OUT parameters )
全部 DML 允许在程序内操作。
最适合执行一些复杂的逻辑并相应地更新表数据。

tnkciper

tnkciper2#

这取决于程序的作用。
例如,如果它(同时返回一些值)使用dml操作(例如,将行插入到某个表中),那么函数就不能这样做—您必须使用一个过程。
这个程序的缺点是你不能在一个特定的环境中使用它 SELECT 语句,例如

select proc_name(out_param) from dual;

在这种情况下你必须使用函数。
也, OUT 参数必须存储在某个地方,这通常是一个本地声明的变量,但这意味着您需要另一个pl/sql块来调用该过程并查看其结果。
如果当前过程所做的一切都是查找并返回一些值,那么是的—函数可能是更好的选择。

相关问题