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…
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;