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

Forms Oracle Discussion :

probleme d'insertion(exception ora-01722)


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2008
    Messages
    99
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mai 2008
    Messages : 99
    Par défaut probleme d'insertion(exception ora-01722)
    Bonjour,

    j'ai deux tables table PERIODE et table CONGE

    *PERIODE(ID_PE, DATE_DEBUT ,DATE_FIN ,MATRICULE ,RAISON,)ayant ID_PE comme clé primaire.
    *CONGE(ID_CONGE, ID_PE)ayant ID_CONGE comme clé primaire et ID_PE clé étrangère venant de la table periode.
    j'ai crée deux bloc de données (periode etconge).
    je veux insérer une ligne dans la table PERIODE et donc une ligne qui s'insère automatiquement dans la table CONGE
    j'ai crée le déclencheur when-create-record sous le bloc de donnée PERIODE pour incrémenter la valeur de la clé ID_PE dans la table PERIODE et ça marche parfaitement
    Maintenant je veux inserer une ligne dans la table CONGE avec une clé primaire qui s'incremente automatiquement et la valeur de CONGE.ID_PE reçoit la valeur de PERIODE.PD_PE insérée dans la table PERIODE.
    pour cela j'ai essayé les déclencheurs POST-RECORD et POST-INSERT mais aucun d'eux n'a fonctionné (il s'affiche l'erreur suivant :le declencheur POST-RECORD a détecté une exception ORA-01722 non traitée )
    voici ce que j'ai écrit dans le déclencheur POST-RECORD:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    declare
    	nb number;
    begin
     
    	select count(*) into nb from conge;
    	insert into conge (id_conge,id_pe) values(nb+1,:periode.id_pe);
    end;
    où est le problème et est ce qu'il y a une autre méthode pour résoudre ce problème?
    MERCI de m'avoir répondre au plus tôt possible

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    déjà tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	INSERT INTO conge (id_conge,id_pe) SELECT count(*) + 1,:periode.id_pe FROM conge;
    L'idéal étant d'utiliser une séquence et :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	INSERT INTO conge (id_conge,id_pe) SELECT tasequence.nextval,:periode.id_pe FROM conge;
    Ensuite, vérifie que le champs id_pe est bien du même type que conge.id_pe.

    Sinon essaye d'ajouter un TO_NUMBER.

Discussions similaires

  1. Erreur ORA-01722 sur un Insert
    Par Unsurgent dans le forum Oracle
    Réponses: 2
    Dernier message: 25/02/2011, 12h03
  2. [Vxi3] Erreur Exception: DBD, ORA-01722
    Par milia dans le forum Deski
    Réponses: 2
    Dernier message: 18/08/2009, 14h47
  3. Insert et ORA-01722
    Par beshop2.0 dans le forum JDBC
    Réponses: 2
    Dernier message: 21/04/2009, 16h43
  4. probleme d'INSERT INTO et JavaScript
    Par Matlight dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/03/2004, 15h36
  5. probleme d'insertion d'un Float
    Par neness dans le forum Débuter
    Réponses: 3
    Dernier message: 07/01/2003, 12h32

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