En primer lugar, las cadenas nulas y nulas no siempre fueron tratadas como las mismas por Oracle. Una cadena nula es, por definición, una cadena que no contiene caracteres. Esto no es en absoluto lo mismo que un nulo. NULL es, por definición, la ausencia de datos.
Hace unos cinco o seis años, la cadena nula fue tratada de forma diferente a nula por Oracle. Mientras que, como null, string nulo era igual a todo y diferente de todo (que creo que está bien para nulo, pero totalmente INCORRECTO para cadena nula), al menos la longitud (cadena nula) devolvería 0, como debería ser, dado que una cadena de longitud cero.
Actualmente en Oracle, la longitud (nulo) devuelve nulo, lo que supongo que es O.K., pero la longitud (cadena nula) también devuelve nulo, lo cual es totalmente INCORRECTO.
No entiendo por qué decidieron comenzar a tratar estos 2 "valores" distintos de la misma. Significan cosas diferentes y el programador debe tener la capacidad de actuar en cada uno de diferentes maneras. El hecho de que hayan cambiado su metodología me dice que realmente no tienen ni idea de cómo deberían tratarse estos valores.
Siéntase libre de especular? De alguna manera, no creo que te proporcione el mejor conjunto de respuestas. – SCdF
Supongo que no, pero no estaba seguro de que hubiera alguna certeza sobre el tema, así que pensé que abriría las puertas. Parece haber funcionado bien, hasta ahora. –
http://docs.oracle.com/database/121/SQLRF/sql_elements005.htm#SQLRF51094 – Jayan