Проблема с процедурой выполнения в 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);