Ваша процедура test
имеет 2 входных аргумента.Один имеет тип IN, который должен использоваться с процедурой, а другой параметр supplier
имеет тип OUT
, что означает, что этот параметр должен содержать значение, которое возвращает Procedure
.
Как объяснено@Barbaros, если вы хотите выполнить процедуру через командную строку SQL, вы можете выполнить следующие шаги.
Однако второй способ, который вы показали, - это использование PLSQL Block
.
begin
выполнить тест (2279,: supplierid);
dbms_output.enable;
dbms_output.put_line (поставщик);end;
В приведенном выше примере вызова вы должны заметить, что ключевое слово Execute
используется только при использовании командной строки SQL
.При использовании блока PLSQL вы можете напрямую вызывать процедуру по ее имени, как показано ниже.Также обратите внимание, что если у вас есть параметр OUT
, вы должны иметь параметр OUT
, передаваемый в Procedure
, поскольку Procedure
ожидает 2 аргумента.Смотри ниже демо.
declare
var varchar2(100);
begin
test( supplierid => 2279, supplier =>var);
dbms_output.enable;
dbms_output.put_line(var);
End;