The value of an ARRAY type can be null. VARCHAR is a bit of a special case because an empty string is the same as null (in Oracle anyway). I'd remove the if stmt if you don't need it.