Логическое замещение Comaprision не дает правильного выхода - PullRequest
0 голосов
/ 22 апреля 2019

У меня есть код plsql, в котором я объявил переменную, но когда я меняю оператор сравнения, тогда код не работает должным образом, как я определил ниже

SET SERVEROUTPUT ON;
DECLARE
    v_num1   number(10);
    v_num2     number(10);
    v_num3      number(10);
    v_num4      number(10);

    lowrec      boolean:=FALSE;
BEGIN   
    v_num3 := 34;
    v_num4:=3;

    lowrec :=(v_num3>v_num4);

    IF lowrec then
        DBMS_OUTPUT.PUT_LINE('The record is '||v_num3 ||' smaller than '||v_num4 ||' ' ||sys.diutil.bool_to_int(lowrec));
    ELSE
        DBMS_OUTPUT.PUT_LINE('The record is '||v_num3||' higher than '||v_num4 ||' '||sys.diutil.bool_to_int(lowrec));
    END IF;

END;


OUTPUT: 
The record is 34 smaller than 3 1

passed value are 34 and 3 but it is showing 34 is smaller than 3

1 Ответ

1 голос
/ 22 апреля 2019

Обмен сообщениями dbms_output между IF и ELSE

SET SERVEROUTPUT ON
DECLARE
     v_num1 NUMBER(10);
     v_num2 NUMBER(10);
     v_num3 NUMBER(10);
     v_num4 NUMBER(10);
     lowrec BOOLEAN := false;
BEGIN
     v_num3 := 34;
      v_num4 := 3;

    lowrec := (v_num3 > v_num4 );
     IF lowrec THEN dbms_output.put_line('The record is '
                               || v_num3
                               || ' higher than '
                               || v_num4
                               ||' '|| sys.diutil.bool_to_int(lowrec));
     ELSE dbms_output.put_line('The record is '
                                       || v_num3
                                       || ' smaller than '|| v_num4  --or equal to ?
                                       || ' '
                                       || sys.diutil.bool_to_int(lowrec));
     END IF;

END;
/

The record is 34 higher than 3 1

PL/SQL procedure successfully completed.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...