| Concept ACE | |
Une séquence est un compteur programmable stocké en mémoire par Oracle et utilisable de manière partagé. Objet de la base de données Oracle, au même titre qu'une table ou une vue, il appartient à un utilisateur donné : on peut le manipuler, le modifier, à condition d'avoir les droits nécessaires.
L’utilisation d’une séquence Oracle permet de rechercher un numéro sans poser de verrou sur une table alors que l’utilisation des compteurs habituels s’effectue dans le cadre d’une transaction susceptible de verrouiller momentanément la table.
Le numéro recherché par séquence Oracle est en effet incrémenté que la transaction en cours se termine par un « commit » ou qu’elle se termine par un « rollback ».
Définir une séquence équivaut à définir une suite de nombres entiers dont l’évolution est pilotée par un certain nombre de critères. En effet, cette possibilité permet par exemple de générer des clés uniques dans des tables ou encore de disposer d’un compteur à titre informatif, que l'on incrémente à loisir.
Certains paramètres d’ACE permettent d’utiliser les séquences Oracle à la place de la numérotation intégrée au logiciel.
| Paramètre | Fonctionnalité |
| LOGSEQ |
Optimiser la génération des mouvements de stock dans le module Logistique en utilisant les séquences de numérotation du SGBD ORACLE. |
| SEQORA | Lors de la numérotation des nouveaux événements (table EVE, champ « numeve »), des nouveaux tiers (table TIE, champ « sigtie »), de l’édition à la demande ou de la mise en panier, rechercher le prochain numéro non pas via les compteurs habituels (table UT_CPT et TROU), mais via une séquence Oracle. |
Créer une séquence
create sequence nom_seq start with no_debut
increment by saut
maxvalue valeur_max cycle|nocycle cache|nocache
Utiliser une séquence
La valeur courante de la séquence est donnée par « nom_seq.currval » et la suivante par « nom_seq.nextval ».
Exemple
SQL> create sequence seq_no_cli
start with 1000 increment by 100;
SQL> insert into clients (no, nom) values (seq_no_cli.nextval, 'Deconninck');
Voici le script de création d'une séquence
CREATE SEQUENCE SOC3.SEQ_SEQORA
START WITH 1
MAXVALUE 999999999999999999999999999
MINVALUE 1
CYCLE
CACHE 20
Le paramètre “CACHE” permet de mettre les valeurs Spécifiées en mémoire cache et d’améliorer les performances. Par défaut, Oracle maintient 20 valeurs en mémoire cache.
Notre exemple est illustré avec SQL Developper mais il vous est possible d’utiliser n’importe quel autre éditeur qui offre les mêmes possibilités.