Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Ich muss nach dem Preiscode gefragt werden, nur wenn Typ :=E

Immer wenn Sie eine Variable mit einem kaufmännischen Und aufrufen, wird sie von der verwandten Anweisung als Parameter wahrgenommen. Sie können es als Prozedur oder Funktion aufrufen, um eine solche Antwort zu unterdrücken:

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;