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

PL/SQL Oracle Discussion :

Comprendre le code d'un trigger


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    octobre 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : octobre 2020
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Comprendre le code d'un trigger
    Bonjour voila j'essaye de comprendre actuellement les triggers et je bloque sur ce code :/

    je vous mets les tables concernés:
    CONTROLE (#IdC, Code, TypeC, DateDeb, DateFin, NoteMax)
    NOTATION(#IdC, Num_ET, Note, NoteDef)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    CREATE OR REPLACE TRIGGER Insert_notation
    BEFORE INSERT OR UPDATE OF Note ON NOTATION
    FOR EACH ROW
    Bareme CONTROLE.NoteMax%TYPE; --Que veut dire cette ligne :/
    BEGIN
    SELECT NoteMax
    INTO bareme        -- pareil ici 
    FROM CONTROLE 
    WHERE IdC = :NEW.IdC; ici ok on fait une jointure entre 2 tables
     
    :NEW.NoteDef := :NEW.Note * 20 / bareme;
     
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
     RAISE_APPLICATION_ERROR(-20000,‘Le contrôle est inexistant’); -- la ok j'ai compris l'exception ;)
     
    END;
    Merci pour toute aide apporté, je ne sais pas si ce forum sert a ça mais bon :/ je découvre

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Oracle
    Inscrit en
    décembre 2019
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : décembre 2019
    Messages : 738
    Points : 1 182
    Points
    1 182
    Par défaut
    Bonjour,

    "bareme" est une variable, et :

    CONTROLE.NoteMax%TYPE;

    veut dire que tu la déclares avec le même type de données que la colonne MoteMax de la table CONTROLE.
    Ensuite tu te sers de cette variable pour récupérer le résultat de la requête, car en PL/SQL il faut bien faire quelque chose du jeu de données renvoyé par une requête.

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

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    juillet 2003
    Messages
    4 531
    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 531
    Points : 7 630
    Points
    7 630
    Billets dans le blog
    4
    Par défaut
    Tu peux déclarer un variable de 2 façons on va dire :
    1/ en dur exemple v_chaine := VARCHAR2(30); --30 caractères
    2/ en référence à un objet. Exemple v_chaine := MATABLE.NOM%TYPE; -- Type et taille de la colonne NOM de la table MATABLE

    Le point 2 permet en cas de modification de la colonne NOM de MATABLE, exemple passage de NOM en VARCHAR2(50), de ne pas avoir besoin de remodifier le code de ma procédure, juste de recompiler.
    More Code : More Bugs. Less Code : Less Bugs
    Mon Blog PL/Sql : Fichier Zip / Image BMP / Lire sqliteDB / QRCode et Images PNG ou BMP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Besoin d aide pour comprendre un code
    Par litlebasic dans le forum Delphi
    Réponses: 4
    Dernier message: 22/06/2006, 13h00
  2. Réponses: 6
    Dernier message: 18/06/2006, 00h22
  3. Aide pour comprendre un code
    Par Spacy_green dans le forum Assembleur
    Réponses: 2
    Dernier message: 13/02/2006, 13h22
  4. Aide pour comprendre le code
    Par jfreuff dans le forum Assembleur
    Réponses: 2
    Dernier message: 31/01/2006, 17h54
  5. Comprendre un code asm relatif aux bitmaps
    Par sorry60 dans le forum Assembleur
    Réponses: 8
    Dernier message: 20/04/2005, 21h31

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