Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1400 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ORACLE] Changer la table dont un trigger fait partie

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ORACLE] Changer la table dont un trigger fait partie

n°2324847
jized
Posté le 27-11-2018 à 14:18:46  profilanswer
 

Bonjour à tou(te)s,
 
j'ai développé un petit outil qui me permet de changer la structure d'une table Oracle en renommant l'ancienne, en créant la nouvelle et en transférant les données de l'ancienne vers la nouvelle.
 
Ca fonctionne bien  :) .
 
En revanche, sur mon "Alter table ma_table rename to ma_table_ancienne", les triggers (traçabilité) se modifient et restent affectés à l'ancienne table (la valeur "ON ma_table" passe automatiquement à "ON ma_table_ancienne" )
 
Je pourrais les recréer depuis un script, mais il est impossible d'avoir 2 triggers de même nom sur des tables différentes, et le "create or replace" ne concerne manifestement que le body du trigger.
 
Donc, je n'ai pas d'autre choix, jusqu'à présent, que de supprimer avant de les recréer tous les triggers de toutes les tables dont je modifie la structure.
 
Ce qui est non seulement long, mais aussi plantogène...
 
Est-il possible d'intervenir dans le dictionnaire pour changer la table dont le trigger fait partie ?
 
Y-a-t'il une autre solution ?
 
Merci d'avance pour vos propositions et expériences.
 
Jérôme


Message édité par jized le 27-11-2018 à 16:24:36
mood
Publicité
Posté le 27-11-2018 à 14:18:46  profilanswer
 

n°2324893
Farian
Posté le 28-11-2018 à 12:19:33  profilanswer
 

Bonjour ! Le mieux est de générer le script SQL qui va faire les modifications, en récupérant les triggers associés à l'ancienne table (via la table USER_TRIGGERS) et en générant, pour chacun d'eux, la commande SQL.
 
Ou faire un script PL/SQL qui va exécuter les commandes construites à partir des éléments de cette table, mais cela revient, in fine, au même.
 
Bonne continuation.


---------------
On n'est jamais très fort pour ce calcul !

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [ORACLE] Changer la table dont un trigger fait partie

 

Sujets relatifs
[Résolu]Comment changer automatiquement/manuellement de feuilleChanger de MCU et importation des librairies / composants
Performance de ma tableOut of memory - sql Oracle/php
Auth Laravel avec une table différente de usersDéplacer des fichiers -> dossier avec une partie du nom des fichiers
[MySQL] Supprimer toutes les contraintes d'une tableconseil pour établir MCD relations table access
Noob: Oracle SQL probleme conversion dateChanger l'icone d'un répertoire
Plus de sujets relatifs à : [ORACLE] Changer la table dont un trigger fait partie


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR