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