Я пытаюсь заполнить для коллеги работу над Oracle, и столкнулся с ней. При попытке написать script, чтобы изменить столбец до значения NULL, я столкнулся с прекрасной ошибкой ORA-01451:
ORA-01451: column to be modified to NULL cannot be modified to NULL
Это происходит потому, что столбец уже равен NULL. У нас есть несколько баз данных, которые необходимо устранить, поэтому в моем ошибочном предположении я решил установить его в NULL, чтобы он работал по всем направлениям, чтобы убедиться, что все были в курсе событий, независимо от того, установили ли они этот столбец вручную или нет. Однако это, по-видимому, вызывает ошибку для некоторых людей, у которых уже есть столбец как обнуляемый.
Как проверить, является ли столбец нулевым, чтобы избежать ошибки? Что-то, что достигнет этой идеи:
IF( MyTable.MyColumn IS NOT NULLABLE)
ALTER TABLE MyTable MODIFY(MyColumn NULL);