Recherche…


Mettre à jour les clés étrangères avec une nouvelle valeur dans Oracle

Supposons que vous ayez une table et que vous souhaitiez en changer un. vous pouvez utiliser le scrpit suivant. L'ID primaire est "PK_S"

begin
  for i in (select a.table_name, c.column_name
              from user_constraints a, user_cons_columns c
             where a.CONSTRAINT_TYPE = 'R'
               and a.R_CONSTRAINT_NAME = 'PK_S'
               and c.constraint_name = a.constraint_name) loop
  
                     
         execute immediate 'update ' || i.table_name || ' set ' || i.column_name ||
                      '=to_number(''1000'' || ' ||  i.column_name || ') ';              
                    
                     
 
  end loop;

end;

Désactiver toutes les clés étrangères associées dans Oracle

Supposons que vous ayez la table T1 et qu'elle soit en relation avec de nombreuses tables et que son nom de contrainte de clé primaire soit "pk_t1", vous voulez désactiver ces clés étrangères que vous pouvez utiliser:

Begin
    For I in (select table_name, constraint_name from user_constraint t where   r_constraint_name='pk_t1') loop

Execute immediate ' alter table ' || I.table_name || ' disable constraint ' || i.constraint_name;

   End loop;
End;


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow