Oracle
 sql >> база данни >  >> RDS >> Oracle

Оценка на PL/SQL булеви променливи в Oracle Forms

Можем да тестваме това в SQLPlus, за да видим какво се случва във всяка от 3-те ситуации (true, false, null):

set serveroutput on

declare
  true_value boolean := true;
  false_value boolean := false;
  null_value boolean;
begin

    if not true_value then  --Should not pass
      dbms_output.put_line('True Value');
    end if;

    if not false_value then --Should pass
      dbms_output.put_line('False Value');
    end if;

    if null_value is null then --Just to make sure it is null
      dbms_output.put_line('Null Value is Null');
    end if;

    if not null_value then --Should not pass
      dbms_output.put_line('Null Value');
    end if;
end;
/

Което произвежда:

SQL> set serveroutput on
SQL>
SQL> declare
  2    true_value boolean := true;
  3    false_value boolean := false;
  4    null_value boolean;
  5  begin
  6
  7      if not true_value then  --Should not pass
  8        dbms_output.put_line('True Value');
  9      end if;
 10
 11      if not false_value then --Should pass
 12        dbms_output.put_line('False Value');
 13      end if;
 14
 15      if null_value is null then --Just to make sure it is null
 16        dbms_output.put_line('Null Value is Null');
 17      end if;
 18
 19      if not null_value then --Should not pass
 20        dbms_output.put_line('Null Value');
 21      end if;
 22  end;
 23  /
False Value
Null Value is Null

PL/SQL procedure successfully completed.

SQL>

Така че единственият възможен кодов път, който може да произведе вашия очакван изход, е ако стойността, влизаща в условния елемент, е невярна. Ако това не е това, което виждате или очаквате, тогава нещо друго трябва да се случва във вашата процедура или като страничен ефект.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да проверите дали Oracle Client е инсталиран или не като предпоставка за инсталиране на компонент

  2. Топ n различни стойности на една колона в Oracle

  3. SqlDeveloper:изчистване на списъка с мрежови псевдоними

  4. Как да създадете zip папка в plsql (Oracle)

  5. ArrayList итерира същите данни