Bonjour,

dans mon application, j'utilise 2 blocs, un qui va afficher les enregistrements pour une table, et l'autre qui permet l'insertion dans cette table.

J'ai donc B_VISU_TABLE, et B_TABLE.

- un trigger "général" WHEN-NEW-FORM-INSTANCE qui me permet d'afficher dans mon bloc "tabulaire" les enregistrements
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
GO_BLOCK('B_VISU_PATIENTS');
EXECUTE_QUERY;
- un trigger local qui permet d'insérer dans le bloc VISU les attributs saisie. (via un bouton)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
GO_BLOCK('B_VISU_PATIENTS');
LAST_RECORD;
CREATE_RECORD;
 
:B_VISU_PATIENTS.NUMPAT := :B_PATIENTS.NUMPAT;
:B_VISU_PATIENTS.PRENOM := :B_PATIENTS.PRENOM;
:B_VISU_PATIENTS.NOM    := :B_PATIENTS.NOM;
:B_VISU_PATIENTS.TAUX   := :B_PATIENTS.TAUX;
- et mon trigger final rattaché à un bouton pour commit les données saisies
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
go_block('B_VISU_PATIENTS');
commit_form;
L'insertion dans le bloc de vue se déroule correctement. Mais lorsque je clique sur mon bouton de commit, j'ai un message d'erreur suivant.

FRM-40508: Erreur oracle: INSERTION (INSERT) d'enregistrement impossible.
Puis, avec les détails(Aide/Affiche l'erreur), j'ai :
Erreur d'instruction SQL:
INSERT INTO PATIENTS(NUMPAT,PRENOM,NOM,TAUX) VALUES (:1,:2,:3,:4)
Erreur:
ORA-00001: violation de contrainte unique (LIC12.PK_PATIENTS)
Je vous rassure tout de suite, il n'est pas seulement question de clef primaire (je ne serais pas là sinon). En effet, la même ligne insérée via SQLplus ne produira pas d'erreur(insertion correct). D'où mon incapacité à trouver la source de cette erreurs.

Merci de votre aide.