Действительно ли возможно сохранить '' (пустая строка) как не Нулевое значение в базе данных?

Я использую 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 как непустую пустую строку ('')?

15
задан RHT 2 February 2010 в 16:33
поделиться

4 ответа

Единственный способ сделать это в Oracle - это какое-то вспомогательное поле флага, что когда Предполагается, что набор представляет тот факт, что значение должно быть пустой строкой.

8
ответ дан 1 December 2019 в 04:09
поделиться

Долгое время, так как я использовал Oracle, но я считаю, что мы использовали одно пространство для представления пустой строки, затем обрезать его после прочтения.

1
ответ дан 1 December 2019 в 04:09
поделиться

Насколько мне известно, Oracle не различает "" и NULL, см. здесь.

4
ответ дан 1 December 2019 в 04:09
поделиться

Oracle имеет хорошо известное поведение, которое незаметно преобразует "" в NULL в операторах INSERT и UPDATE.

Вы должны исправить это в своем коде, чтобы предотвратить такое поведение, преобразовав NULL в "" , когда вы читаете столбцы обратно и просто не используете null в вашей программе для начала.

4
ответ дан 1 December 2019 в 04:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: