В чем разница между процедурами и функциями в PLSQL? - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь вставить строку в таблицу, используя PLSQL.Имя таблицы - DOCUMENT_ISSUE_HISTORY.Я использую имя процедуры API PROCEDURE

Insert_New_Line_ (
   doc_class_ IN VARCHAR2,
   doc_no_ IN VARCHAR2,
   doc_sheet_ IN VARCHAR2,
   doc_rev_ IN VARCHAR2,
   info_category_db_ IN VARCHAR2,
   note_ IN VARCHAR2 );

Я запутался, если PRECEDURE может вернуть значение, как это делает функция.Я делаю это:

DECLARE
    doc_class_ varchar2(4000) := 'CVS FILE';
    doc_no_ varchar2(4000) := '01004901.DWG-DWF';
    doc_sheet_ varchar2(20) := 1;
    doc_rev_ varchar2(20) := -1;
    info_category_db_  VARCHAR2(20) :=  NULL;
    note_ VARCHAR2(4000) := 'TEXTING TO UPDATE or FIeld to update';

BEGIN

Document_Issue_History_API.Insert_New_Line__ (doc_class_ ,doc_no_,doc_sheet_,doc_rev_ ,info_category_db_,note_);

end;

Как я могу вставить строку в таблицу?

1 Ответ

0 голосов
/ 23 мая 2018

Функции имеют возвращаемые значения и, следовательно, могут появляться везде, где может использоваться выражение (например, справа от оператора присваивания или как выражение столбца в операторе SQL), в то время как процедуры не имеют возвращаемых значений и не могут использоватьсяв виде выражений.

Это не означает, что процедуры не могут возвращать значения, потому что они могут, пока они являются параметрами OUT или IN / OUT.Вы просто не можете использовать процедуру непосредственно в выражении.

Аналогично, поскольку у функций действительно есть возвращаемое значение (кроме тех параметров, которые указаны как параметры OUT или IN / OUT), они должны использоваться в выражении и могутнельзя звонить напрямую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...