Все кто имел дело с БД 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
Комментариев нет:
Отправить комментарий