Nous avons une application où la base de données contient une grande partie de la logique métier dans les déclencheurs, avec une mise à jour qui déclenche ensuite des déclencheurs sur plusieurs autres tables. Je veux refactoriser le désordre et je voulais commencer par extraire les procédures des déclencheurs, mais je ne trouve aucun outil fiable pour le faire. L'utilisation de "procédure d'extraction" dans SQL Developer et Toad n'a pas réussi à gérer correctement: new et: old les variables de trigger.Refactoring des déclencheurs PL/SQL - Procédures d'extraction
Si vous avez eu un problème similaire avec les déclencheurs, avez-vous trouvé un moyen de contourner le problème?
EDIT: Idéalement, seules les colonnes référencées par code extrait seraient envoyés comme dans/sur les paramètres, comme:
Exemple de code original à extraire de la détente:
.....
if :new.col1 = some_var then
:new.col1 := :old.col1
end if
.....
deviendrait :
procedure proc(in old_col1 varchar2, in out new_col1 varchar2, some_var varchar2) is
begin
if new_col1 = some_var then
new_col1 := old_col1
end if;
end;
......
proc(:old.col1,:new.col1, some_var);
Idéalement, comment voudriez-vous que la fonction "extraire la procédure" gère les: anciennes et: nouvelles variables? –
J'ai ajouté la réponse à la question originale. – Juraj