Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle PL/SQL中函数和过程的区别_Oracle_Plsql - Fatal编程技术网

Oracle PL/SQL中函数和过程的区别

Oracle PL/SQL中函数和过程的区别,oracle,plsql,Oracle,Plsql,可能重复: 函数总是返回一个值,但是当我们在过程中使用“out”时,该过程也会返回一个值,所以请告诉我什么时候应该编写函数,什么时候应该编写过程?我们决定使用过程还是函数的标准是什么?函数主要进行某种计算,并且总是使用return语句返回值,并且可以在select语句中使用。过程用于实现业务逻辑,可以使用out参数返回一个或多个值。您不应该在函数中使用DML。函数主要进行某种计算,并且总是使用return语句返回值,并且可以在select语句中使用。过程用于实现业务逻辑,可以使用out参数返回

可能重复:


函数总是返回一个值,但是当我们在过程中使用“out”时,该过程也会返回一个值,所以请告诉我什么时候应该编写函数,什么时候应该编写过程?我们决定使用过程还是函数的标准是什么?

函数主要进行某种计算,并且总是使用return语句返回值,并且可以在select语句中使用。过程用于实现业务逻辑,可以使用out参数返回一个或多个值。您不应该在函数中使用DML。

函数主要进行某种计算,并且总是使用return语句返回值,并且可以在select语句中使用。过程用于实现业务逻辑,可以使用out参数返回一个或多个值。不应在函数中使用DML。

如果在函数中使用DML,你不能在select语句中使用它,否则你会得到ORA-14551。谢谢obert&DCookie…所以我应该忽略那些总是说“过程不返回值”的语句,因为这是每个人在被问及函数和过程与oracle之间的差异时通常给出的答案。好的,任何逻辑都可以由两者实现。d只有差异才可以be函数不能用在select语句中(函数中有f DMl)…谢谢你的回答…我不知道我的问题已经结束了,因为它不是simi;对于本论坛上已经提出的问题,您不应忽略该声明,而应尝试理解该声明的含义/含义。过程不返回值。过程的OUT和IN-OUT参数可以包含一个值。sox:=函数_x();可以,但x:=程序x(a,b,c);是的,你是绝对正确的。谢谢你在上面的回答中澄清了这一点,但是我们可以用这样一种方式编写代码,即将输出传递给过程中或过程外的任何变量吗?这样,我们选择函数还是过程只是选择的问题?抱歉再次询问…谢谢..如果您想对变量x进行计算,您可以使用参数x创建一个函数,在函数中进行计算并返回新值,或者使用in-OUT参数x创建一个过程,并在de过程中更改x的值。所以调用它应该是:x=函数y(x);或程序_y(x);如果在函数中使用DML,你不能在select语句中使用它,否则你会得到ORA-14551。谢谢obert&DCookie…所以我应该忽略那些总是说“过程不返回值”的语句,因为这是每个人在被问及函数和过程与oracle之间的差异时通常给出的答案。好的,任何逻辑都可以由两者实现。d只有差异才可以be函数不能用在select语句中(函数中有f DMl)…谢谢你的回答…我不知道我的问题已经结束了,因为它不是simi;对于本论坛上已经提出的问题,您不应忽略该声明,而应尝试理解该声明的含义/含义。过程不返回值。过程的OUT和IN-OUT参数可以包含一个值。sox:=函数_x();可以,但x:=程序x(a,b,c);是的,你是绝对正确的。谢谢你在上面的回答中澄清了这一点,但是我们可以用这样一种方式编写代码,即将输出传递给过程中或过程外的任何变量吗?这样,我们选择函数还是过程只是选择的问题?抱歉再次询问…谢谢..如果您想对变量x进行计算,您可以使用参数x创建一个函数,在函数中进行计算并返回新值,或者使用in-OUT参数x创建一个过程,并在de过程中更改x的值。所以调用它应该是:x=函数y(x);或程序_y(x);同样在一般注释上:同样在一般注释上: