za każdym razem, gdy wywołujesz zmienną ze znakiem ampersand, powiązana instrukcja postrzega ją jako parametr. Możesz nazwać to procedurą lub funkcją, aby stłumić taką odpowiedź:
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;