chaque fois que vous appelez une variable avec une esperluette, l'instruction associée la perçoit comme un paramètre. Vous pouvez l'appeler en tant que procédure ou fonction pour supprimer une telle réponse :
SQL> set serveroutput on;
SQL> CREATE OR REPLACE PROCEDURE MY_PROC( lv_price_num NUMBER, lv_type_txt VARCHAR2 ) IS
lv_disc_num NUMBER(3,2);
BEGIN
IF lv_type_txt = 'E' THEN
IF lv_price_num > 85 THEN
lv_disc_num := .20;
ELSIF lv_price_num > 45 THEN
lv_disc_num := .15;
ELSE lv_disc_num := .10;
END IF;
ELSIF lv_type_txt = 'C' THEN
lv_disc_num := .05;
ELSE lv_disc_num := 0;
END IF;
DBMS_OUTPUT.PUT_LINE(lv_disc_num);
END;