Bonsoir,
Je voulais savoir si une fonction identique à Last_Insert_ID de MySQL existait sous Oracle, sachant que la table visée à une clé en auto-incrément par trigger+séquence ?
Merci par avance.
Bonsoir,
Je voulais savoir si une fonction identique à Last_Insert_ID de MySQL existait sous Oracle, sachant que la table visée à une clé en auto-incrément par trigger+séquence ?
Merci par avance.
Déjà, cela serait sympa de nous indiquer la fonctionnalité précise de : Last_Insert_ID.
(il n'y a pas de réponse claire à une question floue...)
Si vous êtes dans la même session que celle qui a réalisé les insertions, SEQUENCE.CURR_VAL devrait vous convenir ! ;-)
Autant pour moiEnvoyé par SheikYerbouti
![]()
Donc, pour les âmes charitables de la voie lactée:
Retourne l'identifiant généré pour une colonne AUTO_INCREMENT par la dernière requête. Utilisez cette commande après avoir exécuté une requête INSERT sur une table qui contient un champ AUTO_INCREMENT.Je regarde, merciSi vous êtes dans la même session que celle qui a réalisé les insertions, SEQUENCE.CURR_VAL devrait vous convenir![]()
Merci, cela marche avec SYS.
J'ai cependant un souci de privilèges...
J'ai créé un synonyme public pour la séquence, et granté un rôle en select dessus.
Mais, après avoir re-granté un user sur le rôle, ce user n'a pas les privilèges suffisants pour(ORA-01031)
Code : Sélectionner tout - Visualiser dans une fenêtre à part select pk_trt.currval from dual
Le rôle doit-il être granté pour autre chose que select ?
Un grand classique : il faut granter update !
Car un select de nextval modifie la valeur ... ;-) (et un currval ne peut être appellé qu'après un nextval !)
Sauf que ce user (tout comme le rôle est déjà granté UPDATE sur les tables...
et je n'ai pas vu un grant update spécifique aux séquences ???
par contre, unsur le user fonctionne, alors que ce même grant appliqué au rôle ne suffit pas...
Code : Sélectionner tout - Visualiser dans une fenêtre à part GRANT SELECT ANY SEQUENCE
enfin, bon, ça me laisse perplexe, car je ne suis pas sûr que ce genre de grant soit vu d'un bon oeil par les DBA (même en restreignant à LA séquence)...
mais comme tout ceci est pour mon propre besoin de développement, je ne vais pas sur-investir![]()
Merci encore.
Est-ce que par hasard votre test ne se ferait pas en PL/SQL et non en SQL ?sur le user fonctionne, alors que ce même grant appliqué au rôle ne suffit pas...
...bonne question...Envoyé par LeoAnderson
Sous TOAD, c'est KO, mais je ne sais pas si PL/SQL est utilisé "en sous-marin" par l'outil.
Par contre, dans mon prog en Delphi/dbExpress, c'est a priori du pur SQL, mais c'est quand même KO.
Partager