valores validar not campo buscar sql oracle plsql

validar - Compruebe si una variable es nula en plsql



nvl oracle (8)

De otra manera:

var := coalesce (var, 5);

COALESCE es el equivalente ANSI (más o menos) de la función NVL de Oracle.

Quiero comprobar si una variable es nula. Si es nulo, entonces quiero establecer un valor para esa variable:

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

Pero me estoy equivocando. ¿Cómo puedo comprobar si una variable es nula?

Estoy usando el tipo de datos oracle


En PL / SQL no puede usar operadores como ''='' o ''<>'' para probar NULL porque todas las comparaciones con NULL devuelven NULL . Para comparar algo con NULL , debe usar los operadores especiales IS NULL o IS NOT NULL que están precisamente para este propósito. Así, en lugar de escribir

IF var = NULL THEN...

Deberías escribir

IF VAR IS NULL THEN...

En el caso de que lo hayas dado, también tienes la opción de usar la función incorporada de NVL . NVL toma dos argumentos, el primero es una variable y el segundo es un valor (constante o computado). NVL mira su primer argumento y, si encuentra que el primer argumento es NULL , devuelve el segundo argumento. Si el primer argumento de NVL no es NULL , se devuelve el primer argumento. Para que pudieras reescribir

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

como

var := NVL(var, 5);

Espero que esto ayude.


Recuerde siempre tener cuidado con los valores nulos en las cláusulas condicionales pl / sql, ya que null nunca es mayor, más pequeño, igual o desigual a cualquier cosa. La mejor manera de evitarlos es usar nvl.

Por ejemplo

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

Nunca va dentro de la cláusula if.

Esto funcionaría.

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




Utilizar:

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

Oracle 9i +:

var = COALESCE(Var, 5)

Otras alternativas:

var = NVL(var, 5)

Referencia:


usar si var es nulo


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