En utilisant Oracle 10g, j'ai besoin de renommer un tas de contraintes FK qui se terminent toutes en LITE pour inclure un préfixe FK.Un problème avec le changement de nom des contraintes Oracle directement dans la table user_constraint?
Ma pensée a été (je l'ai assuré que tous les noms sont suffisamment courts pour accueillir le préfixe):
DECLARE
v_name VARCHAR2(30 BYTE);
v_new_name VARCHAR2(30 BYTE);
CURSOR c1 is select CONSTRAINT name from user_constraints where constraint_type = 'R' and constraint_name like '%_LITE';
BEGIN
OPEN c1;
LOOP
FETCH c1 into v_name;
EXIT when c1%NOTFOUND;
v_new_name:= 'FK_' || v_name;
update user_constraints SET constraint_name = v_new_name where constraint_name = v_name;
END LOOP;
close c1;
END;
Toute raison pour laquelle ce serait dangereux et je devrais avoir à créer les instructions alter table au lieu?
Qu'est-ce qui ne va pas avec ALTER TABLE? – DCookie