Вы можете объявить процедуру, однако:
1) Вы объявляете ее без ключевых слов 'create or replace'
2) Если вы объявляете какие-либо переменные в одном и том же блоке, все процедуры и функции должны быть объявлены после последнего объявления переменной.
Так, например, это:
declare
some_text varchar2(10) := 'SOME_TEXT';
procedure print_4 is
x number := 4;
begin
dbms_output.put_line(x);
end print_4;
begin
print_4;
end;
является допустимым блоком pl / sql, тогда как это:
declare
procedure print_4 is
x number := 4;
begin
dbms_output.put_line(x);
end print_4;
some_text varchar2(10) := 'SOME_TEXT';
begin
print_4;
end;
это не так.
Если вы опубликуете свой код, мы можем найти другие ошибки.