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

Administration Oracle Discussion :

Saut d'increment avec une séquence


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 2
    Par défaut Saut d'increment avec une séquence
    J'ai un incrément de séquence de 3 à chaque utilisation de cette séquence, alors que j'ai créé ma séquence ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    create sequence SEQ_SUIVOLEO_ORIGORDNO
           start with 1
           maxvalue 99999
           minvalue 1
           nocache
    (increment by 1 par défaut normalement)

    Merci de votre aide...

  2. #2
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Et si tu la recrées en précisant bien le increment by 1 ?

    Sinon es-tu le seul à y accéder ? Es-tu sûr de ne pas y accéder 3 fois à chaque lecture ?

  3. #3
    Candidat au Club
    Inscrit en
    Mai 2005
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 2
    Par défaut Réponse à Nuke y
    Nuke,

    L'increment est bien à 1, vérifier avec select * from all_sequences :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SEQUENCE_OWNER                 SEQUENCE_NAME                   MIN_VALUE
    ------------------------------ ------------------------------ ----------
     MAX_VALUE INCREMENT_BY C O CACHE_SIZE LAST_NUMBER
    ---------- ------------ - - ---------- -----------
    RCS                            SEQ_SUIVOLEO_ORIGORDNO                  1
         99999            1 N N          0          16
    et je suis seul à utiliser la séquence à ce moment_là...

    Merci encore

  4. #4
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    et comment est-ce que tu l'utilises ?
    c'est vite fait d'avoir mis l'affectation d'un No de séquence DANS un Loop au lieu d'en dehors...

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2004
    Messages
    286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 286
    Par défaut
    Oracle ne garanti pas la continuité des sequences, seulement leur unicité.

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    Est-ce que tu aurais le code avec lequel tu déclenches ta séquence ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    Salut tlm

    Voila j'ai créé un sequence reserv_seq (voir code ci dessous)
    Lors de l’ajout d’un record dans une table ma_table, j'aimerais utuliser la séquence reserv_seq pour remplir un champ id_personne qui est la clé primaire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    CREATE SEQUENCE reserv_seq
    	START WITH     1000
    	INCREMENT BY   1
    	MAXVALUE        99999
    	NOCYCLE
    	NOCACHE;
    Quelqu'un pourrait me donner un exemple?

    merci

  8. #8
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    essaye :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    insert into ma_table
    	( id_personne
    	, autre_1
    	, autre_2
    	, ...
    	)
    values
    	( reserv_seq.nextval
    	, Valeur pour autre_1
    	, Valeur pour autre_2
    	, ...
    	) ;

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2006
    Messages : 9
    Par défaut
    merci yorgla

    Pourrais aussi le faire grace un trigger qui mettrait a jour le champ id_reservation automatiqument grace a la séquence
    j'essaie ceci mais ça ne marche pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    create or replace trigger tg4_inc_id_reservation
    before insert on voyages
    for each row
    declare
    begin 
     select reserv_seq.nextval
       into :new.id_reservation from voyages
    end tg4_inc_id_reservation;
    j'utilise toad et il me dit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: TRIGGER created with compilation errors.
    Que devrais je corrige le cas échaant?

  10. #10
    Membre chevronné
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Décembre 2004
    Messages : 349
    Par défaut
    entre autres , remplacer ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT reserv_seq.NEXTVAL
       INTO :new.id_reservation FROM voyages
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT reserv_seq.NEXTVAL
       INTO :new.id_reservation FROM DUAL

Discussions similaires

  1. problème avec une séquence
    Par mariek dans le forum Requêtes
    Réponses: 5
    Dernier message: 25/10/2010, 14h31
  2. probleme bind avec une séquence
    Par guitariste dans le forum JavaFX
    Réponses: 3
    Dernier message: 28/05/2009, 23h24
  3. Création clé primaire avec une séquence
    Par richard_sraing dans le forum PL/SQL
    Réponses: 0
    Dernier message: 14/11/2008, 00h36
  4. Réponses: 1
    Dernier message: 25/09/2006, 10h18
  5. tri avec l'ordre UPDATE et incrementation d'une colonne
    Par Staron dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/02/2004, 08h48

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