Какое значение по умолчанию для логической переменной Out в процедурах PL / SQL? - PullRequest
0 голосов
/ 26 февраля 2020

Есть ли значение по умолчанию для логической переменной Out в oracle процедурах? Нужно ли нам назначать какое-либо значение по умолчанию?

1 Ответ

0 голосов
/ 27 февраля 2020

Значением по умолчанию для любой переменной любого типа данных, которой не присвоено значение, является NULL; это то же самое для OUT параметров (которые фактически являются просто другой переменной, которой можно присвоить значение).

BOOLEAN типы данных не являются исключением, поскольку они могут иметь три возможных состояния:

  • TRUE
  • FALSE
  • NULL

Например, здесь отображаются значения неназначенного BOOLEAN (а затем значения после него были присвоены значения):

DECLARE
  value BOOLEAN;

  PROCEDURE print_boolean( message VARCHAR2, value BOOLEAN )
  IS
  BEGIN
    DBMS_OUTPUT.PUT( message );
    IF value = TRUE THEN
      DBMS_OUTPUT.PUT_LINE( 'True' );
    ELSIF value = FALSE THEN
      DBMS_OUTPUT.PUT_LINE( 'False' );
    ELSIF value IS NULL THEN
      DBMS_OUTPUT.PUT_LINE( 'Null' );
    ELSE
      DBMS_OUTPUT.PUT_LINE( 'Something Else' );
    END IF;
  END;
BEGIN
  print_boolean( 'DEFAULT: ', value );
  value := TRUE;
  print_boolean( 'TRUE:    ', value );
  value := FALSE;
  print_boolean( 'FALSE:   ', value );
  value := NULL;
  print_boolean( 'NULL:    ', value );
END;
/

выходы:

DEFAULT: Null
TRUE:    True
FALSE:   False
NULL:    Null

дБ <> скрипка здесь

...