Oracle - erro ao declarar variável

Pessoal, estou tentando criar uma procedure e nela preciso declarar uma variável chamada
COMISSAO (declarei assim… DECLARE
COMISSAO NUMBER :=3;)

Porém o oracle informada que tem algo errado…:confused:

alguém pode me ajudar? Obrigado!
segue print do erro e o script…




CREATE OR REPLACE PROCEDURE up_rel_comissao_vendas(p_data_inicio date,p_data_final date)

IS


CURSOR CAL


IS 
SELECT h.employee_id, first_name || last_name as nome,
SUM(ORDER_TOTAL) AS VALORTOTAL

FROM orders INNER JOIN HR.employees h on orders.employees_id=h.employee_id
WHERE CAST(ORDER_DATE AS DATE) BETWEEN p_data_inicio AND p_data_final
GROUP BY h.employee_id, first_name || last_name;


BEGIN 

FOR REC IN CAL
LOOP 
DECLARE
 COMISSAO NUMBER :=3;
IF REC.VALORTOTAL<10000 THEN 
COMISSAO:=0.5;
END IF;
IF REC.VALORTOTAL >10001 AND REC.VALORTOTAL <20000 THEN 
COMISSAO:=1;
END IF;
IF REC.VALORTOTAL >20001 AND REC.VALORTOTAL <30000 THEN 
COMISSAO:=1.5;
END IF;
IF REC.VALORTOTAL >30001 THEN 
COMISSAO:=2;
END IF;
INSERT INTO OE.comissao_vendas
(data_inicial,data_final,vendedor_id,nome_vendedor,total_vendido,valor_comissao)

VALUES(p_data_inicio,p_data_final,REC.employee_id,REC.nome,REC.VALORTOTAL,COMISSAO);
 
IF COMISSAO=0 THEN
dbms_output.put_line('Existe comissão igual a zero ');
ROLLBACK; 
END IF;

END LOOP
COMMIT;
END;

Tentar achar exemplos disso na internet é bem mais difícil do que deveria…

Aqui tem uma página com um exemplo que cobre seu caso: