Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка на NULLABLE / 2 сообщений из 2, страница 1 из 1
07.09.2018, 11:06
    #39699437
IgorSm
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на NULLABLE
Подскажите, как правильнее проверить на NOT NULL колонки
Выполняю запрос вида (привожу упрощенный)
Код: plsql
1.
SELECT Table_Name, NULLABLE, Column_Name  from user_TAB_COLUMNS where Table_Name='MYTable'  AND NULLABLE  ='Y' and Column_Name ='MyColumn';


Возвращает соответственно Y, типа он NULLABLE
Выполняю
Код: plsql
1.
ALTER TABLE MYTable MODIFY MyColumn NOT NULL;


Получаем
Код: plsql
1.
2.
Error report -
SQL Error: ORA-01442: модифицируемый в NOT NULL столбец уже имеет атрибут NOT NULL


Смотрим constraint таблицы
Код: plsql
1.
MyColumn DATE CONSTRAINT "SYS_C007017" NOT NULL ENABLE NOVALIDATE, 


Вопроса два
1) Почему он в user_TAB_COLUMNS NULLABLE= 'Y'
2) Проверку выполнять лучше через USER_CONSTRAINTS?
...
Рейтинг: 0 / 0
07.09.2018, 14:56
    #39699681
Ivan K
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проверка на NULLABLE
IgorSm,

1. Потому что CONSTRAINT - NOVALIDATE
2. лучше через user_TAB_COLUMNS, хотя косяки и тут бывают
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Проверка на NULLABLE / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]