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

SQL Oracle Discussion :

Division entière avec TRUNC


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut Division entière avec TRUNC
    Bonsoir,
    Je souhaiterais savoir qu'est ce qui n'allait pas lorsque j'utilise TRUNC.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    q := TRUNC((volumeCommande-maxEspace)/volumeUnite),0);
    Apparemment il y a un problème au niveau de la virgule mais je ne vois pas lequel.
    Sinon connaissez-vous un autre moyen de récupérer la division entière de 2 float (autre procedure, cast,....)
    Merci

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Ouais... j'adore ce jeu... alors faut trouver l'erreur ou le problème que tu as c'est ça ?

  3. #3
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    Non, en fait comme je l'ai dis plus haut je cherche à récupérer la division entière de 2 float.
    J'ai trouvé la procédure TRUNC mais lorsque je fais "show errors" on me signale un problème au niveau de la virgule entre les deux paramètre.
    Donc je voulais savoir si c'était bien comme cela que s'utilisait TRUNC.

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Serait-ce trop demander que de vouloir voir le message complet ?

    Note que soit y'a un ",0" en trop soit un TRUNC à la place de ROUND

  5. #5
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    OK, je vais recommencer, désolé si je me suis mal exprimé.
    Tout d'abord je souhaite récupérer la partie entière d'une division entre 2 float.
    J'ai donc fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    q := TRUNC((volumeCommande-maxEspace)/volumeUnite),0);
    q étant un INTEGER et les autres variables des NUMBER(7,3).
    Mais ça ne marche pas, voilà le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PLS-00103: Encountered the symbol "," when expecting one of the
             following:
             . ( * % & = - + ; < / > at in is mod remainder not rem
             <an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_
             LIKE4_ LIKEC_ between || multiset member SUBMULTISET_
    Donc je suppose que j'ai mal utilisé TRUNC et je souhaiterais savoir comment corriger mon erreur, ou si il y avait une autre manière de récupérer la partie entière d'un float.
    Voilà, est-ce plus clair?

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est + clair en effet

    Donc soit tu supprimes le ",0" soit tu remplaces TRUNC par ROUND

  7. #7
    Membre éclairé Avatar de LinuxUser
    Inscrit en
    Avril 2007
    Messages
    857
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 857
    Par défaut
    D'après ce que j'ai lu, TRUNC s'utilise de la manière suivante:
    n étant le NUMBER que l'on veut tronquer, et m le nombre de décimal.
    En l'occurrence je souhaite zéro décimal, donc TRUNC(f,0).

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 141
    Par défaut
    Citation Envoyé par juve1897 Voir le message
    Apparemment il y a un problème au niveau de la virgule mais je ne vois pas lequel.
    Sinon connaissez-vous un autre moyen de récupérer la division entière de 2 float (autre procedure, cast,....)
    Merci
    tu as essayé d'enlever la virgule ? parceque si mes souvenirs sont exacts,il n'y a pas de ",0" dans la procedure TRUNC..

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

Discussions similaires

  1. ACCESS SQL : division entière ?
    Par kikidrome dans le forum Langage SQL
    Réponses: 6
    Dernier message: 02/10/2014, 09h12
  2. [Sparc V8] Reste division entière
    Par oli_carbo dans le forum Autres architectures
    Réponses: 1
    Dernier message: 24/10/2006, 16h09
  3. une "division flottante" avec javascript
    Par maniaco_jazz dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 21/12/2005, 11h32
  4. Génération de lignes entières avec TEXT_IO.PUT
    Par ludo.guy dans le forum Oracle
    Réponses: 9
    Dernier message: 13/10/2004, 15h28
  5. Division entière et Modulo
    Par kase74 dans le forum SQL
    Réponses: 6
    Dernier message: 01/04/2004, 11h46

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