Alter Sequence Oracle
Fermé
marmotte
Messages postés
17
Date d'inscription
mardi 29 mai 2001
Statut
Membre
Dernière intervention
5 mai 2015
-
9 avril 2004 à 11:24
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 11 déc. 2008 à 09:48
sandul Messages postés 3927 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 8 octobre 2010 - 11 déc. 2008 à 09:48
Bonjour,
J'utilise les séquences oracle et j'aimerais savoir si il ya un moyen pour mettre ces séquences à une valeur choisie ...
Par exemple la séquence est à 3 et je ve la passer directement à 15 (sans exécuter 12 fois la commande 'select sequence.nextval from dual)
Merci de votre aide
marmotte
J'utilise les séquences oracle et j'aimerais savoir si il ya un moyen pour mettre ces séquences à une valeur choisie ...
Par exemple la séquence est à 3 et je ve la passer directement à 15 (sans exécuter 12 fois la commande 'select sequence.nextval from dual)
Merci de votre aide
marmotte
2 réponses
Bonjour;
pour faire cela, il faut altèrer la séquence, et lui donner un pas qui est égale à la différence entre l'ancien n° et le nouveau.
pour cela, utiliser en pl/sql la procédure FORMS_DLL(instruction LDD).
exemple: si la séquence est à 2 et vous voulez que ça passe à 10, vous mettez:
FORMS_DDL('alter sequence SEQ_NAME INCREMENT BY 8');
la différence vous pouvez la paramétrer dans une variable que vous calculez auparavant.
ex: si le nom de la variable est DIFF, vous avez l'instruction:
FORMS_DDL('alter sequence SEQ_NAME INCREMENT BY'||DIFF);
bon courage;
DIVAL
pour faire cela, il faut altèrer la séquence, et lui donner un pas qui est égale à la différence entre l'ancien n° et le nouveau.
pour cela, utiliser en pl/sql la procédure FORMS_DLL(instruction LDD).
exemple: si la séquence est à 2 et vous voulez que ça passe à 10, vous mettez:
FORMS_DDL('alter sequence SEQ_NAME INCREMENT BY 8');
la différence vous pouvez la paramétrer dans une variable que vous calculez auparavant.
ex: si le nom de la variable est DIFF, vous avez l'instruction:
FORMS_DDL('alter sequence SEQ_NAME INCREMENT BY'||DIFF);
bon courage;
DIVAL
avec un for loop de ton ancienne valeur à la nouvelle et au milieu select sequence.nextval
sandul
Messages postés
3927
Date d'inscription
jeudi 22 mai 2008
Statut
Membre
Dernière intervention
8 octobre 2010
723
11 déc. 2008 à 09:48
11 déc. 2008 à 09:48
Salut,
Il y a plus simple - disons que la nouvelle prochaine valeur devrait être 15:
ALTER SEQUENCE machin INCREMENT BY 1 MINVALUE 15 MAXVALUE 999999999999999999999999999 NOCACHE NOCYCLE NOORDER;
++
Il y a plus simple - disons que la nouvelle prochaine valeur devrait être 15:
ALTER SEQUENCE machin INCREMENT BY 1 MINVALUE 15 MAXVALUE 999999999999999999999999999 NOCACHE NOCYCLE NOORDER;
++