如果我们在 plsql 过程中有 out 参数而在 function.Then 中有 return 为什么我们使用过程而不是函数?

If we have out parameter in plsql procedure and return in function.Then why we use procedure instead of function?

如果我们的 PLSQL procedure.Then 中只有 Out 参数,我们可以使用函数而不是过程,因为函数也可以 return 值。 如果我们仍然使用过程,那么我们使用它而不是函数。

我希望我能够传达我想问的正确问题?

这取决于程序的作用。

例如,如果它(连同 returning 一些值)使用 DML 操作(例如,将行插入到某些 table),那么函数不能这样做 - 你将有使用程序。

过程的缺点是不能在SELECT语句中使用它,例如

select proc_name(out_param) from dual;

在这种情况下,您将不得不使用函数。

此外,OUT 参数必须存储在某个地方,这通常是一个局部声明的变量,但这意味着您需要另一个 PL/SQL 块来调用过程并查看其结果。

如果您当前的程序所做的一切都是为了找到 & return 一些值,那么是的 - 函数可能是更好的选择。

两者之间的一些重要区别如下:

函数:

  • 可以从SQL语句调用(SELECT,UPDATE,DELETE)
  • 可以return只有一个值
  • DML里面不允许操作
  • 最适合为一些常见的复杂逻辑选择值。

程序:

  • 不能从SQL语句中调用。您必须需要 PL/SQL 块才能调用它。
  • 可以 return 多个值 (OUT parameters)
  • 过程中允许所有 DML 操作。
  • 最适合执行一些复杂的逻辑并相应地更新 table 数据。