IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PL/SQL Oracle Discussion :

Bornes de DBMS_RANDOM.VALUE


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut Bornes de DBMS_RANDOM.VALUE
    Bonjour,

    j'ai une question concernant la fonction VALUE de DBMS_RANDOM. Je sais qu'avec comme paramètres DBMS_RANDOM.VALUE(borneInf, borneSup) j'aurai comme résultat un NUMBER x tel que :

    borneInf <= x < borneSup

    Est-il possible d'inclure la borne supérieure dans les résultats de la fonction ?

    Merci d'avance

    Shiv@

  2. #2
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    oui c'est possible

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT ceil(dbms_random.value(1, 3))
    FROM dual;

  3. #3
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut
    Bonjour

    Le problème n'est pas si simple, il me faut un tirage équiprobable de toutes les valeurs possibles entre 0 et 1, bornes incluses. Et ce en conservant les décimales.

    Pour le moment la solution que j'adopte est de normaliser le résultat qui est entre 0 et 0.9999999.... (38 décimales) en le divisant par cette borne supérieure. Mais je ne trouve pas ça très propre.

  4. #4
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    on dirait que dbms_random.value le fait bien
    sauf qu'il y a une infinité de solution entre 0 et1 et qui fait penser que le 1 n'est pas inclus


    si tu fais

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    create table  t1
    (id number);
     
    begin
     for i in 1..10000
     
           loop
            insert /*+ APPEND */ into t1
          select   round(dbms_random.value(0,1),3)
                            from dual
             ;
     
            commit;
        end loop;
     
    end;
    /
    je trouve 7 valeurs en 1

  5. #5
    Membre chevronné Avatar de Shivaneth
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2004
    Messages
    349
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2004
    Messages : 349
    Par défaut
    Ca doit être ton arrondi qui fait que tu as des valeurs à 1 car la documentation d'Oracle spécifie bien que DBMS_RANDOM.VALUE sort une valeur supérieure ou égale à la borne minimale et strictement inférieure à la borne maximale (Doc).

    De toute façon je n'ai plus besoin de cette fonctionnalité, le client a changé d'avis

    Merci quand même de ton aide

    Shiv@

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec dbms_random.value
    Par zoom61 dans le forum SQL
    Réponses: 4
    Dernier message: 18/05/2011, 07h36
  2. Calcul du plu court chemin entre 2 sommets d'un graphe valué
    Par atlasm dans le forum Algorithmes et structures de données
    Réponses: 25
    Dernier message: 07/08/2005, 17h06
  3. [MFC]Value Controle dans un comboBox
    Par jul54 dans le forum MFC
    Réponses: 6
    Dernier message: 10/02/2004, 09h57
  4. Réponses: 4
    Dernier message: 18/11/2003, 16h08
  5. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 13h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo