IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SQL Oracle Discussion :

procedure ou trigger à exécuter avant commit


Sujet :

SQL Oracle

  1. #1
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut procedure ou trigger à exécuter avant commit
    Bonjour,

    Sous SQL, je souhaiterais pouvoir executer une procedure sql ou déclencher un trigger au moment du commit (juste avant en fait).
    Est ce possible ?
    merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    J'espère bien que c'est impossible !

    Avec le nombre de commit effectué sur une base de données, c'est vouloir la mort du serveur.

    Quelle drôle d'idée, quel besoin justifie ceci ?

  3. #3
    Membre éprouvé Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 902
    Points : 1 066
    Points
    1 066
    Par défaut
    Comment ça impossible ! Quel drôle d'idée
    bien sûr que c'est possible
    Il te suffit d'écrire ta procédure en la nommant de son petit nom
    Sous SQL Plus tu l'exécutes comme suit : @taproc
    Dernière précision : ne pas oublie de faire un commit en fin de procédure
    J'en ai moi-même écrit une que j'ai appelé "com'it !"

  4. #4
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    Citation Envoyé par Waldar Voir le message
    J'espère bien que c'est impossible !

    Avec le nombre de commit effectué sur une base de données, c'est vouloir la mort du serveur.

    Quelle drôle d'idée, quel besoin justifie ceci ?

    Le besoin est le suivant : plusieurs applications insèrent des points avec coordonnées latitude/longitude. J'ai besoin de calculer régulièrement le barycentre de ces points. Je pensais interressant de déclencher ce calcul au commit directement au niveau d'Oracle par un trigger ou une procédure sans avoir à impacter les applications (aujourd'hui mon trigger se déclenchait sur la création ou modification des points, et j'avais un pb de récursivité). Les commits sur ma base ne sont faites explicitement que par les utilisateurs de mes applications : le nombre est donc très limité.

  5. #5
    Membre averti Avatar de awalter1
    Inscrit en
    Août 2004
    Messages
    994
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 994
    Points : 407
    Points
    407
    Par défaut
    Citation Envoyé par star Voir le message
    Il te suffit d'écrire ta procédure en la nommant de son petit nom
    Sous SQL Plus tu l'exécutes comme suit : @taproc
    Dernière précision : ne pas oublie de faire un commit en fin de procédure
    J'en ai moi-même écrit une que j'ai appelé "com'it !"
    Je n'ai pas bien compris qu'est qui fait que taproc est appelé au moment du commit ?
    Merci

  6. #6
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    Au lieu de tapper commit;
    tu tapes com'it;
    et la procédure com'it fait ton code, puis un commit;

  7. #7
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 453
    Points : 18 388
    Points
    18 388
    Par défaut
    Le calcul du barycentre est complexe ? Je ne me souviens plus trop.

    Si vous êtes en Oracle 11g, vous pouvez intégrer directement une colonne calculée dans votre table. Sinon, vous pouvez faire une vue avec ce calcul.

Discussions similaires

  1. Call stored procedure from trigger
    Par DAGADA dans le forum SQL
    Réponses: 3
    Dernier message: 24/05/2007, 13h33
  2. Trigger après le commit du insert
    Par macben dans le forum PL/SQL
    Réponses: 3
    Dernier message: 22/05/2007, 11h36
  3. Réponses: 5
    Dernier message: 26/04/2007, 16h08
  4. Contrôler les exécutables avant l'execution
    Par Tchetch dans le forum Sécurité
    Réponses: 12
    Dernier message: 21/12/2006, 19h01
  5. [forms 9i] WVR exécuté avant WNII
    Par Magnus dans le forum Forms
    Réponses: 5
    Dernier message: 17/07/2006, 17h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo