相关疑难解决方法(0)

oracle中的MODIFY COLUMN - 如何在设置为nullable之前检查列是否可以为空?

我正在努力为同事做一些Oracle工作,并陷入困境.在尝试编写脚本以将列修改为可为空时,我遇到了可爱的ORA-01451错误:

ORA-01451: column to be modified to NULL cannot be modified to NULL
Run Code Online (Sandbox Code Playgroud)

发生这种情况是因为列已经是NULL.我们有几个需要更新的数据库,所以在我错误的假设中,我认为将其设置为NULL应该全面工作以确保每个人都是最新的,无论他们是否已将此列手动设置为可为空.但是,对于已经将列作为可空的一些人来说,这显然会导致错误.

如何检查列是否已经可以为空以避免错误?能够实现这个想法的东西:

IF( MyTable.MyColumn IS NOT NULLABLE)
   ALTER TABLE MyTable MODIFY(MyColumn  NULL);
Run Code Online (Sandbox Code Playgroud)

database oracle schema plsql

35
推荐指数
2
解决办法
8万
查看次数

标签 统计

database ×1

oracle ×1

plsql ×1

schema ×1