Oracle has two varchar types, VARCHAR and VARCHAR2. Most advice seems to suggest using VARCHAR2, but is there any difference between them, or any time when I should use VARCHAR instead?
Answer by Shaun 2 ·
Varchar is there for ANSI SQL support, whereas Varchar2 is Oracle's own take on that, being based on the Oracle v5 CHAR definition. But in summary the difference is in the zero length char, VARCHAR2 at zero length will report as null.
Answer by thecoop ·
From the documentation:
Although the VARCHAR datatype is currently synonymous with VARCHAR2, the VARCHAR datatype is scheduled to be redefined as a separate datatype used for variable-length character strings compared with different comparison semantics.
So, use VARCHAR2 if you want to keep the current semantics of comparisons in your database :)