Oracle
 sql >> Database >  >> RDS >> Oracle

Devo chiedere il codice prezzo solo se digita :=E

ogni volta che chiami una variabile con una e commerciale, l'istruzione correlata la percepisce come un parametro. Puoi chiamarlo come una procedura o una funzione per sopprimere una tale risposta :

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;