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

JDBC Java Discussion :

[JDBC] [ORACLE] Récupérer Id auto-inséré ???


Sujet :

JDBC Java

  1. #1
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut [JDBC] [ORACLE] Récupérer Id auto-inséré ???
    Bonjour,

    Je poste ici car je n'ai pas trouvé de forum sous la rubrique Oracle.

    Une table dispose d'une séquence et d'un trigger qui crée un nouvel id lors d'une insertion.
    Maintenant, après d'une insertion, je veux récupérer ce nouvel id.

    - J'ai essayé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rs = stmt.getGeneratedKeys();
    (fonctionJDBC).
    Mais je reçoit une SQLException : Fonction non-implémentée par le driver (oracle)

    - On me conseille de supprimer le trigger, de récupérer l'id de séquence par une premiere requete, et de l'utiliser manuellement pour l'insertion.

    Est-ce le seul moyen ??? sérieux ???
    Si oui, quelle est la syntaxe exacte de cette requete ?
    Sinon, quelle autre solution ? N'y a t-il pas simplement une fonction qui retourne le dernier id pour la connection, comme en mySQL ou SQLServer ?


    Merci

    Cordialement,

    bob

  2. #2
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Oui c'est bel et bien la meilleure solution.

    Le mieux à faire est de créer une séquence sur ta colonne.
    Ensuite tu executes une query pour rechercher le prochain id

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     select ta_sequence.nextval() from dual;
    Ensuite tu insères cette valeur avec les autres valeurs.

    Voilà
    Bonnne chance
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    76
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 76
    Points : 83
    Points
    83
    Par défaut
    Tout simplement apres l insertion avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     select nom_sequence.CURRVAL from dual;

  4. #4
    Membre expérimenté

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Points : 1 660
    Points
    1 660
    Par défaut
    Ah là je ne suis pas d'accord, si pendant que tu insères des données une autre personne souhaite également insérer au même moment tu risques d'avoir des problèmes avec les ID.
    Langages : Java, SQL
    Outils : Eclipse, Intellij
    SGBD : Oracle, PostgreSQL
    Mes Articles

  5. #5
    Membre régulier
    Profil pro
    gnome
    Inscrit en
    Octobre 2004
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : El Salvador

    Informations professionnelles :
    Activité : gnome

    Informations forums :
    Inscription : Octobre 2004
    Messages : 142
    Points : 71
    Points
    71
    Par défaut
    Et bien, à deux contre un, je choisis la première solution, mais c'est bien compliqué pour un identifiant...

    thanks

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

Discussions similaires

  1. [AC-2007] Comment récupérer la valeur du dernier numéro auto inséré dans une table ?
    Par marot_r dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 18/11/2010, 17h17
  2. Réponses: 11
    Dernier message: 23/11/2007, 09h38
  3. Réponses: 2
    Dernier message: 22/02/2006, 21h18
  4. [auto-incrémentation] récupérer la valeur insérée
    Par laffreuxthomas dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 16/01/2005, 15h53
  5. Récupérer 1 image insérée ds 1 contrôle "Picture"
    Par Yacine95000 dans le forum MFC
    Réponses: 18
    Dernier message: 05/08/2004, 18h08

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