Когда таблица расширяется (например предусмотренной для расширения структурой — для стандартных таблиц или новым полем для своих), если база управляется СУБД Oracle (в других не проверял), в том случае если в таблице уже существовали записи, новые поля не устанавливаются в Initial значения по этим записям. Таким образом следующий запрос не вернет результатов:
1 |
SELECT ... FROM Таблица WHERE ДобавленноеПоле = ''. |
По умолчанию Oracle ставит данное поле в NULL значение (для всех старых записей в таблице), NULL — означает что данному полю никогда не присваивалось значение. Для обхода этой ситуации необходимо либо проверять поле на NULL
1 |
... WHERE ( ДобавленноеПоле = '' OR ДобавленноеПоле IS NULL ) |
либо поставить галочку напротив «НачЗнач» в определении структуры (при активации таблицы значения всех старых записей по новым полям будут перезаписаны в Initial (значения по умолчанию).
Галку для поля включенной (include) структуры поставить нельзя.
Можно так:
update
{field}
set
{field} = »
where
{field} is null.
Галку поставить можно, для этого надо зайти в структуру через SE11 и выполнить нехитрую операцию в меню Доп.информация->Свойства БД->Флаг инициализации вкл./выкл.
Также, если вы расширили какую либо таблицу(собственной Z-структурой), которая входит в стандартный ракурс БД, можно расширить и сам стандартный ракурс, не применяя ключ доступа. Для этого — зайти в стандартный ракурс(SE11), потом по меню Перейти к -> Ракурс дополнения, потом выбрать свой Include и нажать кнопочку изменить. Как то так. 🙂