Bonjour,

J'ai une base de données qui est en production, je voudrais faire une mise à jour d'une table avec la commande suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
ALTER TABLE TESTREQ MODIFY (
 PrimarySampleSampleType   DEFAULT 1 NOT NULL NOVALIDATE,
 PrimarySampleSubjectState DEFAULT 1 NOT NULL NOVALIDATE,
 PrimarySampleDilution     DEFAULT 0 NOT NULL NOVALIDATE,
 AnalysisMethod         DEFAULT 1 NOT NULL NOVALIDATE,
 AnalysisPriority       DEFAULT 1 NOT NULL NOVALIDATE,
 AnalysisPerformer      DEFAULT 1 NOT NULL NOVALIDATE,
 AnalysisOrganization   DEFAULT 1 NOT NULL NOVALIDATE
)
Comme la table TESTREQ contient beaucoup de données, l'exécution de la commande va durer plus de 8 heures.

Mon objectif est de réduire ce temps pour ne pas trop perturber la production.

J'ai essayé de diviser la commande comme suit:

1)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
ALTER TABLE TESTREQ ADD (
 PrimarySampleSampleType   NUMBER,
 PrimarySampleSubjectState NUMBER,
 PrimarySampleDilution     NUMBER,
 AnalysisMethod         NUMBER,
 AnalysisPriority       NUMBER,
 AnalysisPerformer      NUMBER,
 AnalysisOrganization   NUMBER
);
2)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
ALTER TABLE TESTREQ MODIFY (
 PrimarySampleSampleType   DEFAULT 1,
 PrimarySampleSubjectState DEFAULT 1,
 PrimarySampleDilution     DEFAULT 0,
 AnalysisMethod         DEFAULT 1 ,
 AnalysisPriority       DEFAULT 1,
 AnalysisPerformer      DEFAULT 1,
 AnalysisOrganization   DEFAULT 1
)
3)
Une application qui va mettre les valeurs par défaut sur les enregistrement existant.

4)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
ALTER TABLE TESTREQ MODIFY (
 PrimarySampleSampleType   	NOT NULL,
 PrimarySampleSubjectState 	NOT NULL,
 PrimarySampleDilution     	NOT NULL,
 AnalysisMethod         	NOT NULL,
 AnalysisPriority       	NOT NULL,
 AnalysisPerformer      	NOT NULL,
 AnalysisOrganization   	NOT NULL
)
Mais ce 4° commande prendre toujours beaucoup de temps.
Est ce qu'il y a possibilité que l'Oracle accepte de changer les contraints mais sans faire la vérification des données ?