Проблема с процедурой выполнения в PL/SQL Developer

Это моя первая попытка создать процедуру и выполнить ее. Сначала создаю простую таблицу. Схема БД таблицы приведена здесь:

Название таблицы: Ziaci

Столбцы:

  • ZiakId - первичный ключ, номер
  • Фамилия, varchar2
  • FirstName, varchar2
  • TriedaId - ключ forgein, число

Процедура сохранения только вставляет данные в таблицу, я создал прокудку хранилища с этим SQL-cmd:

create procedure ziaci_proc(surname_in in varchar2, 
firstname_in in varchar2, triedaid_in in number)
is
begin
  insert into ziaci (surname, firstname,triedaid) values (surname_in,firstname_in,triedaid_in);
  end;

И я пробую назвать это предложение как:

execute ziaci_proc('X','Y',1)

Я получаю эту ошибку:

Недопустимый оператор SQL ORA-00900

An в PLE SQL Developer IDE с подчеркнутым словом выполнения с красным цветом.

Я тестирую эту процедуру, и она работает хорошо.

Я могу выполнить эту процедуру только с помощью этой команды SQL:

begin
ziaci_proc('A','B',2);
end;

Что плохо, спасибо за помощь.

Ответ 1

Вызов хранимых процедур с использованием execute, как указано выше, относится к SQL * Plus. Фактически SQL * Plus преобразует execute some_proc() в BEGIN some_proc(); END;, вы можете это увидеть сами, пытаясь вызвать процедуру, которая не существует:

SQL> execute some_proc()
BEGIN some_proc(); END;

      *
ERROR at line 1:
ORA-06550: line 1, column 7:
PLS-00201: identifier 'SOME_PROC' must be declared
ORA-06550: line 1, column 7:
PL/SQL: Statement ignored

Ответ 2

Я думаю, что вы пишете команду в "SQL Window". Вы должны использовать "Окно команд", чтобы успешно выполнить эту строку:

execute ziaci_proc('X','Y',1);