Por enquanto, são sinônimos.
VARCHAR é reservado pelo Oracle para suportar a distinção entre NULL e string vazia no futuro, como ANSI norma prescreve. VARCHAR2 não distingue entre um NULL e string vazia, e nunca será. Se você confiar em uma string vazia e
NULL sendo a mesma coisa, você deve usar VARCHAR2 .