Как выполнить хранимую процедуру oracle?
Я использую oracle 10G express edition. Он имеет хороший интерфейс для разработчиков БД. Но я сталкиваюсь с некоторыми проблемами при выполнении хранимых процедур.
процедура:
create or replace procedure temp_proc is
begin
DBMS_OUTPUT.PUT_LINE('Test');
end
он успешно создан. Но когда я исполняю:
execute temp_proc;
это показывает ORA-00900: недопустимая инструкция SQL
поэтому помощь нужна здесь
5 ответов
Execute
является синтаксисом sql*plus .. попробуйте обернуть ваш звонок в begin .. конец такой:
begin
temp_proc;
end;
(хотя Джеффри говорит, что это не работает в APEX .. но вы пытаетесь запустить это в SQLDeveloper .. попробуйте меню " Run " там.)
Oracle 10G Express Edition поставляется со встроенным Oracle Application Express (Apex). Вы запускаете это в своем окне команд SQL, которое не поддерживает синтаксис SQL*Plus.
Это не имеет значения, потому что (как вы обнаружили) начало...Синтаксис END работает в Apex.
оба " is " и " as " являются допустимым синтаксисом. Выход отключен по умолчанию. Попробуйте процедуру, которая также включает вывод...
create or replace procedure temp_proc is
begin
DBMS_OUTPUT.ENABLE(1000000);
DBMS_OUTPUT.PUT_LINE('Test');
end;
...и вызовите его в блоке PLSQL...
begin
temp_proc;
end;
...поскольку SQL не является процедурным.
вы пытались исправить синтаксис, как это?:
create or replace procedure temp_proc AS
begin
DBMS_OUTPUT.PUT_LINE('Test');
end;