Как выполнить хранимую процедуру 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 не является процедурным.


begin 
    temp_proc;
end;

Я хочу напомнить вам, что" temp_proc " должен быть синонимом...


вы пытались исправить синтаксис, как это?:

create or replace procedure temp_proc AS
begin
  DBMS_OUTPUT.PUT_LINE('Test');
end;