Sql oracle - procedure stocké et séquences : avis / propositions

nagaD.scar 4147 Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention - 7 août 2017 à 13:42
Salut à tous !

Voilà j'ai un petit projet pour lequel j'ai besoin de générer des identifiants uniques basés sur une fourchette de valeurs. Cette fourchette étant fournis par un client.

J'ai donc une table (TRANGE) contenant mes informations, avec une ligne par range. La table contient :
- Un id unique de fourchette (TR_ID)
- la fourchette (start / end) (TR_START / TR_END)
- la dernière valeur renvoyées (TR_CURRENT)
- l'état de ma fourchette ( consommée, en utilisation, prêt à être utilisé) (TR_STATE).


Et en parralèle j'ai quelques procédures stockées pour récupérer la valeur et gérer quelle fourchette utiliser. Bref tout ca fonctionne sans soucis en séquentiel ... mon problème concerne les appels parallèles : bien que très rare, vu que j'ai plusieurs process (autonomes et à utilisateurs) qui requiert une valeur, il arrive que j'ai deux appels au même moment et donc ma valeur est dupliquée. Ma recherche concerne donc ce point, soit ne pas avoir de duplicates.

Mon idée se porte donc plutot du côté des séquences étant données que ca me permettrai de ne pas avoir à gérer moi même une file ( il m'est très compliqué de mettre tout à jours pour le prendre en compte, mon but est donc de ne jouer, dans la mesure du possible, qu'avec les procédures stockées).

Donc l'idée serai de faire une séquence d'incrément 1 que je mettrai à jours à chaque changement de range => l'appel de ma procédure stockée récupererai la nextval, updaterai la ligne de fourchette avec cette valeur et renverrai juste la valeur de la séquence.

Le truc c'est simplement que je n'ai pas du tout l'habitude de travailler avec les séquences et que je ne suis pas expert oracle, je cherche donc à savoir si mon idée est viable pour pouvoir la présenter et la mettre en place (ou dans le cas contraire trouver des idées autre^^)

Merci pour ceux qui prendront le temps !

Pierre
Afficher la suite 
4147Messages postés samedi 8 septembre 2007Date d'inscription 6 décembre 2017 Dernière intervention

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.