MODIFY COLUMN in oracle - Wie prüfe ich, ob eine Spalte nullbar ist, bevor ich sie auf nullbar setze?

Ich versuche, einen Kollegen zu finden, der Oracle-Arbeiten ausführt, und bin auf einen Haken gestoßen. Beim Versuch, ein Skript zum Ändern einer Spalte in nullable zu schreiben, stieß ich auf den schönen ORA-01451-Fehler:

<code>ORA-01451: column to be modified to NULL cannot be modified to NULL
</code>

Dies geschieht, weil die Spalte bereits NULL ist. Wir haben mehrere Datenbanken, die aktualisiert werden müssen. Aus meiner fehlerhaften Annahme heraus sollte die Einstellung NULL auf allen Ebenen funktionieren, um sicherzustellen, dass alle Benutzer auf dem neuesten Stand sind, unabhängig davon, ob diese Spalte manuell auf null gesetzt wurde oder nicht. Dies verursacht jedoch anscheinend einen Fehler für einige Leute, die die Spalte bereits als nullwertfähig haben.

Wie prüft man, ob eine Spalte bereits nullfähig ist, um den Fehler zu vermeiden? Etwas, das diese Idee erfüllen würde:

<code>IF( MyTable.MyColumn IS NOT NULLABLE)
   ALTER TABLE MyTable MODIFY(MyColumn  NULL);
</code>

Antworten auf die Frage(2)

Ihre Antwort auf die Frage