Oracle: Comparando Valores Nulos

Esta es otra de esas cosas que he aprendido últimamente a fuerza de engullir una ingente cantidad de código.

Depurar o no depurar. Esa es la cuestión.

Estaba intentando comparar el valor de un parámetro de un procedimiento almacenado con el de la columna de una tabla, y resulta que la expresión fallaba a veces. Es por el tratamiento que se hace de los valores nulos al realizar una comparación.

Si alguno de los valores es nulo, cuando compare dicho valor con otro, aunque sea otro nulo, la expresión devuelve siempre false.

Parece ser que ocurre lo mismo con las cadenas. Una cadena vacía es siempre distinta de otra cadena vacía.

 

image

Esta expresión siempre devuelve False

 

 

 

 

image

Esta también

 

image

Esta otra también

 

image

Si coincide que ambos son nulos, esta expresión también devolverá False

 

image

Al final acabé con esta. Es una manera sencilla, aunque algo costosa, de comparar dos campos nullables.

Si comparo dos valores, por ejemplo columnas de una tabla, y ambos son nulos, obtendré Verdadero.

Versión de Oracle:

image

Crossposting from crisfervil.com

2 comentarios en “Oracle: Comparando Valores Nulos”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *