Quando você tem BEGIN, END, etc, você está em PL/SQL, não em SQL.
Um bloco PL/SQL precisa ser finalizado com uma única barra ("forward") no início da linha. Isso informa ao Oracle que você terminou com seu bloco PL/SQL, então ele compila esse bloco de texto.
Consulta SQL - terminada por ponto e vírgula:
update orders set status = 'COMPLETE' where order_id = 55255;
Bloco PL/SQL - comandos separados por ponto e vírgula, o bloco é encerrado por barra:
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;
/