Подтвердить что ты не робот

Проверьте, нет ли переменной в plsql

Я хочу проверить, является ли переменная нулевой. Если оно равно null, то я хочу установить значение для этой переменной:

//data type of var is  number 
if Var = null then
  var :=5;
endif

Но я заблуждаюсь. Как проверить, является ли переменная нулевой?

Я использую тип данных оракула

4b9b3361

Ответ 1

if var is NULL then
  var :=5;
end if;

Ответ 2

Использование:

IF Var IS NULL THEN
  var := 5;
ENDIF;

Oracle 9i +:

var = COALESCE(Var, 5)

Другие альтернативы:

var = NVL(var, 5)

Ссылка:

Ответ 3

В PL/SQL вы не можете использовать такие операторы, как '=' или '< > ' для тестирования NULL, потому что все сравнения с NULL возвращают NULL. Чтобы сравнить что-то против NULL, вам нужно использовать специальные операторы IS NULL или IS NOT NULL, которые существуют именно для этой цели. Таким образом, вместо написания

IF var = NULL THEN...

вам следует написать

IF VAR IS NULL THEN...

В том случае, если вы указали, вы также можете использовать встроенную функцию NVL. NVL принимает два аргумента, первый из которых является переменной, а второй - значением (постоянным или вычисленным). NVL смотрит на свой первый аргумент и, если обнаруживает, что первый аргумент NULL, возвращает второй аргумент. Если первый аргумент NVL не равен NULL, возвращается первый аргумент. Таким образом, вы можете переписать

IF var IS NULL THEN
  var := 5;
END IF;

а

var := NVL(var, 5);

Надеюсь, это поможет.

Ответ 6

использовать, если var имеет значение null

Ответ 7

Всегда помните о том, чтобы быть осторожным с нулями в условных предложениях pl/sql, поскольку значение null никогда не больше, меньше, равно или не соответствует чему-либо. Лучший способ избежать их - использовать nvl.

Например

declare
  i integer;
begin
  if i <> 1 then
    i:=1;
    foobar();
  end if;
end;
/

Никогда не входит в предложение if.

Они будут работать.

if 1<>nvl(i,1) then
if i<> 1 or i is null then

Ответ 8

Другой способ:

var := coalesce (var, 5);

COALESCE - эквивалент ANSI (более или менее) функции Oracle NVL.