Posez votre question Signaler

Sequence et oracle

angélique - Dernière réponse le 14 juil. 2004 à 10:49
j'aimerais numéroter sous oracle une collone incrémenter de 1 mais il faudrait en plus que la numérotation s'innitialiser à 1 chaque mois
quelqu'un aurait-il une solution
Lire la suite 

Sequence et oracle »

2 réponses
Réponse
+0
moins plus
Hello,

Tu peux créer une séquence :

CREATE SEQUENCE [nom_seq]
INCREMENT BY 1
START WITH 1
[NOORDER][ORDER]

exemple :

CREATE SEQUENCE MY_SEQ INCREMENT BY 1 START WITH 1

Et si tu veux l'initialiser à 1 chaque mois il faut que tu la delete et la recrée :

drop SEQUENCE [nom_seq]

exemple :

drop sequence MY_SEQ

Donc pour ajouter une valeur tu fais :

insert into maitre(cle, libelle) values(MY_SEQ . nextval, 'toto');

Tu peux reseter ta séquence avec une crontab ou la commande at afin d'automatiser cela.

le cycle habituel d'une séquence est l'option :

MINVALUE 1 MAXVALUE 99999999 CYCLE

mais dans ton cas pour remettre à zéro ton compteur il faut deleter ta séquence et la recrée.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour;
vous pouvez s'en passer de la séquence, en générant le code par programmation (c'est mieux).
sinon, vous pouvez le faire, en créant une séquence initialement, et pour nouveau mois vous pouvez la supprimer et la recréer par programmation en utilisant soit :
1. EXECUTE IMMEDIATE si votre programme est coté server
2. FORMS_DDL si votre programme est coté client (FORMS).
Bon courage
dival
Ajouter un commentaire
Ce document intitulé « sequence et oracle » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook