Все кто имел дело с БД Oracle, знают, что объявлять символьные поля и переменные надо как VARCHAR2, а не VARCHAR. Но эти типы данных вроде синонимы: CREATE TABLE table1 ( id number, text VARCHAR(10), text2 VARCHAR2(10) ) Name Null Type ----- ---- ------------ ID NUMBER TEXT VARCHAR2(10) TEXT2 VARCHAR2(10) Так какая все таки между ними разница?
Ответ На данный момент они синонимы. VARCHAR зарезервирован Oracle для поддержки, в будущем, различия между NULL и пустой строкой, как описано в стандарте ANSI. VARCHAR2 не делает различий между NULL и пустой строкой, и никогда не будет делать. Если вы полагаетесь на то, что пустая строка и NULL - одно и то же, используйте VARCHAR2. перевод ответа @Quassnoi