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 :

[Forms]Erreur trigger générer par Forms 6i Fonctionnant en Forms10g


Sujet :

Forms Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Par défaut [Forms]Erreur trigger générer par Forms 6i Fonctionnant en Forms10g
    Salut tout le monde,
    J'ai une table étudiant, où je vérifie le premier chiffre de l'insee et la civilité si c'est MR ou ME ou MLE. Exemple le premier chiffre est 1 donc c'est MR.
    Sous Forms 10g il me génère ce code et j'ai aucun probleme, alors que en 6i il me met des erreurs.
    Je passerais bien en 10g mais faut que je fasse en 6i.

    - Begin default enforce data integrity constraint CK_ETUDIANT_CIV_INSEE section
    --
    if not( (SUBSTR(TO_CHAR(:ETUDIANT.NUMINSEE),1,1) = '1' AND :ETUDIANT.CIVILITE = 'MR') OR (SUBSTR(TO_CHAR(:ETUDIANT.NUMINSEE),1,1) <> '1') ) then
    message( 'WHEN-VALIDATE-RECORD trigger failed.' );
    raise form_trigger_failure;
    end if;
    --
    -- End default enforce data integrity constraint CK_ETUDIANT_CIV_INSEE section
    --

    J'ai les erreurs suivantes :

    too many declarations of to_chat match this call

    Statement ignored

    Si vous avez une idée.

    Donaldo

  2. #2
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Bonjour,

    de quel type ?

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Par défaut
    Il est en VARCHAR2(13).

    Donaldo

  4. #4
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Dans ce cas vire le to_char

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Par défaut
    Oui mais je voulais récupérer juste le premier chiffre. Et si j'enlève le to_char le trigger compile mais quand on exécute il ne fait rien.

    Donaldo

  6. #6
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Bonjour,

    Il suffit de mettre seulement SUBSTR(:ETUDIANT.NUMINSEE,1,1)

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Par défaut
    Je viens de retester avec ce que tu m'as donné, et non si je mes 2135687796451 et MR il insère bien l'enregistrement pareil si je mes 1236549876543. Alors que dans ma base oracle ça bloque bien et que si je fais pareil en 10g ça fonctionne également. Comment peut on vérifier ce que retourne la commande que tu m'as passé?

    Donaldo

  8. #8
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par Donaldo
    Oui mais je voulais récupérer juste le premier chiffre. Et si j'enlève le to_char le trigger compile mais quand on exécute il ne fait rien.
    Le to_char sert à convertir un nombre ou une date en chaine de caractères. Si c'est du varchar2, elle est inutile et provoque cette erreur sous forms 6i.

    S'il ne se passe rien, c'est qu'il doit y avoir une autre erreur ailleurs.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Par défaut
    Comme je disais précedement il y a un moyen de voir ce que retourne une requete? J'essaye de faire message('texte'); mais aucun message n'apparait.

    Donaldo

  10. #10
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Bonjour,

    Essaies d'executer ce script
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    SELECT case when not( (SUBSTR(ETUDIANT.NUMINSEE,1,1) = '1' AND ETUDIANT.CIVILITE = 'MR') 
     OR (SUBSTR(ETUDIANT.NUMINSEE,1,1) <> '1') )  THEN 
     'MESSAGE1'
     END CASE 
     FROM ETUDIANT 
     WHERE  ETUDIANT.NUMINSEE='2135687796451' AND ETUDIANT.CIVILITE = 'MR'
    Moi je pense que le problème est au niveau de ta condition

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    83
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 83
    Par défaut
    Il me met que ETUDIANT.NUMINSEE n'est pas déclaré. Oui tu as raison le to_char n'est pas nécessaire, mais ce qui est étrange c'est que meme malgrès cette ânerie sous oracle ça fonctionne et de meme pour Forms10g.

    Donc j'aimerais voire ce que ça retourne sous Forms 6i mais je sais pas comment faire.

    Je m'absente une petite heure mais je reviens.

    Donaldo

  12. #12
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Bonjour ,

    Ta condition est la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    not ( (SUBSTR(:ETUDIANT.NUMINSEE,1,1) = '1' AND :ETUDIANT.CIVILITE = 'MR') 
             OR (SUBSTR(ETUDIANT.NUMINSEE,1,1) <> '1') )
    est equivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ((SUBSTR(:ETUDIANT.NUMINSEE,1,1) <> '1' or :ETUDIANT.CIVILITE <> 'MR') 
     and (SUBSTR(ETUDIANT.NUMINSEE,1,1) = '1'))

    donc avec :ETUDIANT.NUMINSEE='2135687796451' AND :ETUDIANT.CIVILITE = 'MR' il rentreras pas dans la partie then

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ('2' <> '1' or 'MR' <> 'MR')  and ('2'= '1'))  
    donc ca verifie pas la condition donc il rentre pas la partie then

  13. #13
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    Citation Envoyé par Donaldo
    Donc j'aimerais voire ce que ça retourne sous Forms 6i mais je sais pas comment faire.
    Tu mets un message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MESSAGE('SUB:[' || SUBSTR(:ETUDIANT.NUMINSEE),1,1)  || '] Civilité: ' ||:ETUDIANT.CIVILITE); 
    MESSAGE(' ');
    Le 2ème message avec espace est oblig pour avoir une fenetre alerte et non un message en bas de l'écran.

  14. #14
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Bonjour,

    Une autre manière de le faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MESSAGE('SUB:[' || SUBSTR(:ETUDIANT.NUMINSEE),1,1)  || '] Civilité: ' ||:ETUDIANT.CIVILITE); 
    pause ;

  15. #15
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    je connaissais pas ce pause;
    merci

  16. #16
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Par défaut
    Bonjour,

    Je l'ai appris au travail

Discussions similaires

  1. [Forms] Erreur FRM-10142 de Forms 10i Developer Suite
    Par marioBross2 dans le forum Connexions aux bases de données
    Réponses: 2
    Dernier message: 17/09/2012, 18h09
  2. [FORMS] Erreur FRM-40735 et ORA-6508
    Par sourizeante dans le forum Forms
    Réponses: 5
    Dernier message: 27/06/2007, 12h14
  3. [Forms]Erreur FRM-10142 de Forms 9i Developer Suite
    Par ambe_fr dans le forum Forms
    Réponses: 1
    Dernier message: 20/04/2007, 16h29
  4. Réponses: 4
    Dernier message: 11/05/2006, 11h28
  5. [Tiles]message d'erreur dans un footer (form mal rempli)
    Par clement42 dans le forum Struts 1
    Réponses: 5
    Dernier message: 09/06/2005, 14h51

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