Как вы, ребята, обрабатываете пустые строки с помощью Oracle?Oracle пустые строки
Заявление # 1: Oracle обрабатывает пустую строку (например, '') как NULL в полях "varchar2".
Заявление # 2: У нас есть модель, которая определяет абстрактную «структуры таблицы», где для нас есть поля, которые не может быть NULL, но может быть «пустым». Эта модель работает с различными СУБД; почти везде, все просто прекрасно, но не с Oracle. Вы просто не можете вставить пустую строку в поле «не null».
Заявление № 3: в нашем случае недопустимое значение по умолчанию не допускается.
Итак, кто-нибудь будет так добр, чтобы рассказать мне - как мы можем его решить?
«основано на глупом решении, которое они приняли много лет назад». Да, поскольку обратная совместимость - это никогда не проблема. Oracle может безопасно изменять поведение пустых строк, не нарушая при этом ловушки кода, которые полагаются на это поведение. - – NullUserException
@Null, есть несколько способов исправить это, не нарушая совместимость. Один вскочил в мою голову в течение секунды, прочитав ваш комментарий, что позволяет установить флаг для определенного кода, который будет запускать его в режиме «соответствия».Таким образом, если вы явно не устанавливаете флаг для всего вашего кода, у вас есть идеальная совместимость. Если вы хотите, чтобы определенный код правильно обрабатывал NULL, установите для него флаг. Как только вы убедитесь, что у вас больше нет кода мусора, установите флаг по всему миру. Эти биты «kludge» были, по крайней мере, со времен Data General :-) – paxdiablo
Это было бы похоже на «ANSI NULLS» SQL Server (например: 'SET ANSI NULLS ON'), но с другой поведением в среде по-разному может быть источник большой путаницы. – NullUserException