Я использую DB Oracle. На уровне базы данных при установке значения столбца или на ПУСТОЙ УКАЗАТЕЛЬ или на '' (пустую строку) выбранное значение является НУЛЕВЫМ в обоих случаях. Действительно ли возможно сохранить '' (пустая строка) как не Нулевое значение в базе данных?
Я выполняю это
UPDATE contacts SET last_name = '' WHERE id = '1001';
commit;
SELECT last_name, ID FROM contacts WHERE id ='1001';
LAST_NAME ID
------------ ------
null 1001
Действительно ли возможно сохранить last_name как непустую пустую строку ('')?
Единственный способ сделать это в Oracle - это какое-то вспомогательное поле флага, что когда Предполагается, что набор представляет тот факт, что значение должно быть пустой строкой.
Долгое время, так как я использовал Oracle, но я считаю, что мы использовали одно пространство для представления пустой строки, затем обрезать его после прочтения.
Насколько мне известно, Oracle не различает "" и NULL, см. здесь.
Oracle имеет хорошо известное поведение, которое незаметно преобразует ""
в NULL
в операторах INSERT и UPDATE.
Вы должны исправить это в своем коде, чтобы предотвратить такое поведение, преобразовав NULL
в ""
, когда вы читаете столбцы обратно и просто не используете null
в вашей программе для начала.