,
disons que j'ai la requête d'insertion suivante. La clé primaire de la table est une référence (champs REFVERS0) à incrémenter simplement, sachant que les normes de la société ne permette pas de laisser Oracle gérer lui même les références.
EF2MVER5.INSERT=INSERT INTO EF2VER ( REFVERS0, CDAPPLI0, CDPROIDF, NUMVERS0, DTCREVER, HRCREVER, NBTENRVE, NBCHARVE, NBENRDER, DTDERCHG, HRDERCHG, DTEXTVER, HREXTVER ) VALUES ((SELECT MAX(REFVERS0)FROM VEF2VER0)+1 , (SELECT EF2PRO.CDAPPLI0 FROM EF2PRO WHERE EF2PRO.CDPROIDF = ?) , ?, ?, ?, ?, ?, ?, ?, ?, ? , ?, ? )
Vous remarquerez le select dynamique qui va cherchez la plus grande référence existante. Mon problème est qu'en cas de table vide, ce select retourne null et que null + 1, ça fait tjrs null et ça plante.
Bref ma question : qqn sait-il comment coder dans le select "si null, retourne 0" ? ça doit être tout con mais on est vendredi et je coince ...