SQL portability / CHAR and VARCHAR types |
At the SQL level, most databases distinguish '' empty strings from NULL (with some exceptions like Oracle DB). However, in programs, an empty string is the equivalent to NULL in program variables. As result, it is not possible to distinguish an empty string from a NULL when such values are fetched from the database. This limitation is only visible when fetching VARCHAR columns and expressions fetched into VARCHAR variables, because CHAR columns get filled with blanks if the database returns a CHAR column value that was filled with an empty string; CHAR columns get blanks up to the max size.