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

Oracle Discussion :

Probeme de curseur


Sujet :

Oracle

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    236
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 236
    Points : 80
    Points
    80
    Par défaut Probeme de curseur
    Bonjour à tous,

    J'ai crée un trigger qui se declence a la suppression d'un ligne de la table service que voici :
    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 T1
    BEFORE DELETE ON SERVICE
    FOR EACH ROW
    DECLARE
    	CURSOR C IS SELECT IDPERSONNE,Profession,Service FROM EMPLOYE WHERE SERVICE=:OLD.IDSERVICE;
     
    	PERS EMPLOYE.IDPERSONNE%TYPE;
    	PROF EMPLOYE.PROFESSION%TYPE;
    	SERVICE EMPLOYE.SERVICE%TYPE;
    BEGIN
    	OPEN C;
    	FETCH C INTO PERS,PROF,SERVICE;
    		INSERT INTO CANDIDAT VALUES (PERS, PROF);
    		DELETE EMPLOYE WHERE SERVICE=(:OLD.IDSERVICE) AND
    		IDPERSONNE=PERS;
    		UPDATE 
    END;
    /
    le code fonctionne bien..Si il n'y a qu'un employé qui travaille dans ce service. Lorsqu'il y en a 2 ca plante avec cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Violation de contrainte d'integrité - Enregistrement fils existant
    Je dois faire une erreur quelque part dans mes boucles ou je ne sais pas.
    Merci

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Points : 409
    Points
    409
    Par défaut
    Citation Envoyé par shub
    Je dois faire une erreur quelque part dans mes boucles ou je ne sais pas.
    S'il ne s'agit pas d'un secret défense, essaies de faire passer l'intégralité du code de ton trigger,( les desc des tables, les PK ainsi que les FK seraient les bienvenues) parce que là, ya pas de boucle et il m'étonnerait fort que ton code compile.

    CDLT.

  3. #3
    Membre régulier
    Inscrit en
    Novembre 2006
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 190
    Points : 103
    Points
    103
    Par défaut
    l'employé à supprimé possede de détails c'est à dire que sa clé primaire migre dans une autre table

Discussions similaires

  1. Position du curseur
    Par gimlithedwarf dans le forum Composants VCL
    Réponses: 2
    Dernier message: 22/08/2002, 23h45
  2. Masquer le curseur en mode MS-DOS
    Par Alex120 dans le forum C
    Réponses: 2
    Dernier message: 10/07/2002, 09h30
  3. Comment limiter les mouvements du curseur??
    Par scorpiwolf dans le forum C++Builder
    Réponses: 9
    Dernier message: 07/07/2002, 22h09
  4. Comment masquer le curseur de la souris ?
    Par benj63 dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/06/2002, 18h54
  5. Position du curseur dans Edit
    Par MrJéjé dans le forum C++Builder
    Réponses: 3
    Dernier message: 20/06/2002, 17h09

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