PL/Sql程序vs功能?

M S*_*ach 18 sql oracle plsql

我试图查看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调用,程序不能

有人可以解释哪一个使用的时间和原因?

Dan*_*rth 11

你已经发现了主要的区别.如果要在SQL中使用它,可以创建一个函数.当您只想在PL/SQL中使用它时,可以创建一个过程.

  • 我认为这是一个很好的经验法则.我会用不同的方式表达它:如果你需要将零个或多个输入值转换为一个输出值,请使用一个函数.如果要操作数据库中的数据,请使用存储过程. (9认同)