Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Outils > Forms
Forms Forum d'entraide sur Oracle Forms
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/03/2007, 16h52   #1
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
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
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 16h59   #2
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Bonjour,

de quel type ?
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h18   #3
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
Il est en VARCHAR2(13).

Donaldo
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h20   #4
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
Dans ce cas vire le to_char
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h22   #5
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
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
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h24   #6
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Bonjour,

Il suffit de mettre seulement SUBSTR(:ETUDIANT.NUMINSEE,1,1)
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h31   #7
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
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
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h31   #8
Expert Confirmé
 
Homme
Chef de projet en SSII
Inscription : janvier 2004
Messages : 2 866
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 866
Points : 3 448
Points : 3 448
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.
__________________
Un problème sans solution est un problème mal posé

Merci de poser vos questions sur le forum, je ne réponds pas aux questions posées par MP.
plaineR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h40   #9
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
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
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h45   #10
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Bonjour,

Essaies d'executer ce script
Code :
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
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 17h52   #11
Futur Membre du Club
 
Inscription : novembre 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 26

Informations forums :
Inscription : novembre 2005
Messages : 79
Points : 15
Points : 15
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
Donaldo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/03/2007, 18h03   #12
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Bonjour ,

Ta condition est la suivante
Code :
1
2
3
 
NOT ( (SUBSTR(:ETUDIANT.NUMINSEE,1,1) = '1' AND :ETUDIANT.CIVILITE = 'MR') 
         OR (SUBSTR(ETUDIANT.NUMINSEE,1,1) <> '1') )
est equivalent à :
Code :
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 :
1
2
3
 
('2' <> '1' OR 'MR' <> 'MR')  AND ('2'= '1'))  
donc ca verifie pas la condition donc il rentre pas la partie then
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 09h21   #13
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
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 :
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.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 13h18   #14
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Bonjour,

Une autre manière de le faire

Code :
1
2
3
MESSAGE('SUB:[' || SUBSTR(:ETUDIANT.NUMINSEE),1,1)  || '] Civilité: ' ||:ETUDIANT.CIVILITE); 
pause ;
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 14h14   #15
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 450
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 450
Points : 4 209
Points : 4 209
je connaissais pas ce pause;
merci
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/03/2007, 14h31   #16
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

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

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Bonjour,

Je l'ai appris au travail
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h46.


 
 
 
 
Partenaires

Hébergement Web