Oracle
 sql >> Base de données >  >> RDS >> Oracle

J'ai besoin que le code de prix soit demandé uniquement si type :=E

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;