Я попытался посмотреть на разницу между процедурой и функцией 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, процедура не может
Может кто-нибудь объяснить, какой из них использовать, когда и почему?