Comment puis-je déposer un “not null” contrainte dans Oracle quand je ne sais pas le nom de la contrainte?

J'ai une base de données qui a une contrainte not NULL sur un terrain, et je veux enlever cette contrainte. Le facteur de complication est que cette contrainte a un système de nom défini, et que la contrainte du nom diffère entre le serveur de production, serveur d'intégration, et les différents développeur de bases de données. Notre processus actuel est de vérifier dans un des scripts de modification, et une tâche automatisée exécute les requêtes appropriées par le biais de sqlplus contre la base de données cible, donc je préfère une solution qui pourrait tout simplement être envoyé directement dans sqlplus.

Sur ma propre base de données, le SQL de déposer ce serait:

alter table MYTABLE drop constraint SYS_C0044566

Je peux voir la contrainte lorsque j'ai une requête à la all_constraints vue:

select * from all_constraints where table_name = 'MYTABLE'

mais je ne suis pas sûr de la façon de travailler avec les SEARCH_CONDITION's LONG type de données ou la meilleure façon de supprimer dynamiquement l'air-jusqu'contrainte, même après que je sais son nom.

Alors, comment puis-je créer un script de modification qui peuvent tomber cette contrainte basée sur ce qu'il est, plutôt que de connaître son nom?


EDIT:
@Allan réponse est bonne, mais je suis préoccupé (dans mon manque d'expertise Oracle) qu'il peut ne pas être universellement vrai que de toute contrainte qui pourrait avoir un nom généré par le système va être associée à un moyen de supprimer la contrainte sans avoir à connaître son nom. Est-il vrai qu'il y aura toujours un moyen d'éviter d'avoir à savoir un système de contrainte nommée du nom lorsque logiquement à la baisse que la contrainte?

  • Simplement pour satisfaire votre curiosité: La contrainte not NULL est le seul type de contrainte dans Oracle que vous pouvez supprimer sans avoir besoin de connaître la contrainte du nom. Tous les autres types de contraintes, vous devez connaître le nom de la contrainte.
InformationsquelleAutor Chris Farmer | 2010-03-29