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

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

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

Колонки:

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

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

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)

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

ORA-00900 неверный оператор SQL

Среда разработки PL/SQL для разработчиков выделена красным словом выполнения.

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

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

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

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

2 ответа

Решение

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

SQL> выполнить some_proc()
НАЧАТЬ some_proc(); КОНЕЦ;

      *
ОШИБКА в строке 1:
ORA-06550: строка 1, колонка 7:
PLS-00201: должен быть объявлен идентификатор "SOME_PROC"
ORA-06550: строка 1, колонка 7:
PL/SQL: оператор игнорируется

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

execute ziaci_proc('X','Y',1);
Другие вопросы по тегам