Bonjour,
Mon problème ; générer une liste de nombres aléatoire (sur 10 positions) unique.
J'ai pensé à DBMS_RANDOM, mais je ne connais pas ce package. De même comment s'assurer de l'unicité des nombres générés ?
Merci.
Bonjour,
Mon problème ; générer une liste de nombres aléatoire (sur 10 positions) unique.
J'ai pensé à DBMS_RANDOM, mais je ne connais pas ce package. De même comment s'assurer de l'unicité des nombres générés ?
Merci.
Exemple pour générer un nombre aléatoire entre 0 et 9:
sur 10 positions:SELECT round(dbms_random.value,1) * 10 FROM dual;
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT round(dbms_random.value * 10000000000) FROM dual ;
Bonjour et merci
Aspect aléatoire : cela répond à une partie du problème
Sous-question
Qu'en est-il de l'unicité des nombres générés. Ils doivent-être absolument unique.
Merci
Insères-tu ces valeurs dans une table ?
Si oui :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 loop begin select round(dbms_random.value * 10000000000) into valeur FROM dual; select 1 into v_exist from matable where macol = valeur; exception when no_data_found then exit; end; end loop;
Bonjour,
Oui, effectivement, cette information sera enregistrée dans une table
Merci
Bonjour,
je me permet de réveiller ce topic car ma question est à peu près la même.![]()
Je dois générer un nombre aléatoire sur 5 chiffres donc sous la forme, et entre, 00001 et 99999.
J'ai donc essayé de générer un nombre entre 1 et 99999 mais je n'ai pas réussi, et après il faut que si le nombre n'est pas sur 5 chiffres, que je complète par des 0.
Merci
EDIT : j'ai trouvé![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT SUBSTR(dbms_random.value,2,5) FROM dual;
Code : Sélectionner tout - Visualiser dans une fenêtre à part select To_char(Trunc(dbms_random.value(1,99999)),'00000') from dual
Partager