【发布时间】:2010-11-04 23:08:03
【问题描述】:
我正试图替一位同事做一些 Oracle 工作,但遇到了障碍。在尝试编写脚本将列修改为可为空时,我遇到了可爱的 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);
【问题讨论】:
标签: database oracle plsql schema