Když máte BEGIN, END atd., jste v PL/SQL, ne v SQL.
Blok PL/SQL musí být ukončen jedním („dopředným“) lomítkem na samém začátku řádku. Tím Oracle sdělíte, že jste skončili s blokem PL/SQL, takže tento blok textu zkompiluje.
SQL dotaz - ukončen středníkem:
update orders set status = 'COMPLETE' where order_id = 55255;
PL/SQL blok - příkazy odděleny středníkem, blok je ukončen lomítkem:
create or replace procedure mark_order_complete (completed_order_id in number)
is
begin
update orders set status = 'COMPLETE' where order_id = :completed_order_id;
end mark_order_complete;
/