alter table MYTABLE modify (MYCOLUMN null);
Oracleでは、列にnull以外が指定されている場合、null以外の制約が自動的に作成されます。同様に、nullを許可するように列が変更されると、それらは自動的に削除されます。
改訂された質問の明確化 :このソリューションは、「null以外」の列に対して作成された制約にのみ適用されます。名前を付けずに列定義で「主キー」またはチェック制約を指定すると、システムによって生成された制約の名前(および主キーのインデックス)が作成されます。そのような場合、それをドロップするには名前を知っている必要があります。 「nullではない」以外のすべての制約に名前を指定することで、シナリオを回避することをお勧めします。これらの制約の1つを一般的に削除する必要がある状況に陥った場合は、おそらくPL/SQLとデータ定義テーブルに頼る必要があります。