Bonjour,
J'ai créé un formulaire pour l'insertion d'un nouveau client dans ma base de données. Pour le numéro du client, j'ai à ma disposition la séquence "SEQ_NEWCUST".
L'insertion marche très bien, mais je voudrais pouvoir récupérer le numéro créé par la séquence, pour l'afficher sur ma page et ensuite l'utiliser pour un autre script.
Voilà un bout du script :
Et voici l'erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 // insertion client $stmt=oci_parse($conn, "INSERT INTO CUSTOMERS VALUES (SEQ_NEWCUST.NEXTVAL,'$nom_clt','$adresse','$contact','$cp','$ville','$province','$pays','','','','','$tel','$gsm','$langue','$mail','','','','','','','')") or die ("erreur dans la requête d'insertion"); oci_execute($stmt,OCI_DEFAULT); // recherche du nouvel id (CUST_ID est le champ qui a été remplit par la séquence ci dessus) $stmt2=oci_parse($conn, "SELECT CUST_ID FROM CUSTOMERS WHERE CUST_ID=SEQ_NEWCUST.CURRVAL") or die ("erreur dans la requête de selection"); oci_execute($stmt2,OCI_DEFAULT);J'ai fais des recherches, et me suis rendue compte que l'utilisation de currval dans une clause where est interdite. Mais je ne vois pas d'autres solutions pour récupérer le numéro que la séquence vient d'attribuer au client.ORA-02287: sequence number not allowed here, faisant référence à la ligne "oci_execute($stmt2,OCI_DEFAULT);".
Merci d'avance pour votre aide.
Partager