IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[V9] "last insert id" ?


Sujet :

Oracle

  1. #1
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 920
    Points : 6 035
    Points
    6 035
    Par défaut [V9] "last insert id" ?
    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.

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    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...)

  3. #3
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Si vous êtes dans la même session que celle qui a réalisé les insertions, SEQUENCE.CURR_VAL devrait vous convenir ! ;-)

  4. #4
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 920
    Points : 6 035
    Points
    6 035
    Par défaut
    Citation Envoyé par SheikYerbouti
    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...)
    Autant pour moi

    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.
    Si vous êtes dans la même session que celle qui a réalisé les insertions, SEQUENCE.CURR_VAL devrait vous convenir
    Je regarde, merci

  5. #5
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    Désolé, c'est CURRVAL le mot-clé !

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 920
    Points : 6 035
    Points
    6 035
    Par défaut
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select pk_trt.currval from dual
    (ORA-01031)

    Le rôle doit-il être granté pour autre chose que select ?

  7. #7
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    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 !)

  8. #8
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 920
    Points : 6 035
    Points
    6 035
    Par défaut
    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, un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    GRANT SELECT ANY SEQUENCE
    sur le user fonctionne, alors que ce même grant appliqué au rôle ne suffit pas...

    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.

  9. #9
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    sur le user fonctionne, alors que ce même grant appliqué au rôle ne suffit pas...
    Est-ce que par hasard votre test ne se ferait pas en PL/SQL et non en SQL ?

  10. #10
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 920
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 920
    Points : 6 035
    Points
    6 035
    Par défaut
    Citation Envoyé par LeoAnderson
    Est-ce que par hasard votre test ne se ferait pas en PL/SQL et non en SQL ?
    ...bonne question...

    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. caractères spéciaux quote ' dans insert
    Par couf35 dans le forum DB2
    Réponses: 1
    Dernier message: 30/04/2009, 18h27
  2. [ACCESS][JAVA][INSERT][QUOTE]Pb insertion quot
    Par 205 dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/01/2008, 17h00
  3. Insertion de quotes et de guillemets
    Par anikeh dans le forum Access
    Réponses: 15
    Dernier message: 26/01/2007, 13h21
  4. [Wamp] Problème d'insertion avec quote d'un formulaire
    Par cyberdevelopment dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 20/08/2006, 18h55
  5. [VBnet][Access] Requete imbriquee "insert + select"
    Par Fab62_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/03/2006, 13h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo