Per ora sono sinonimi.
VARCHAR è riservato da Oracle per supportare la distinzione tra NULL e una stringa vuota in futuro, come ANSI standard prescrive.
VARCHAR2 non distingue tra un NULL e stringa vuota, e non lo farà mai.
Se fai affidamento su una stringa vuota e NULL essendo la stessa cosa, dovresti usare VARCHAR2 .