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

PHP & Base de données Discussion :

Récupération d'un number sur une base oracle [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Récupération d'un number sur une base oracle
    bonjour,

    J'ai un petit souci de récupération de number à partir de la base ORACLE.

    J'ai un champ déclaré comme ceci
    mon_champs number(18,6)

    il stocke des nb grd comme petit par exemple 0.00032

    Si j'ai un nombre qui est inférieur à 0.00010, il stocke le nombre sous cette forme : 4E-5 ce qui correspond à 0.00004

    Seulement le nb est stocké de la forme 4E-5 masi surtout quand je récupère la donnée de ce champs avec un fichier PHP, au lieu de récup 0.00004, je récupère 4E-5 ce qui pose problème car 4E-5 est une chaine de caractère et non pas un entier.

    Est ce qu'il existe une fonction PHP pour transformer le 4E-5 en 0.00004 ?

    Mercii

  2. #2
    Membre chevronné Avatar de Er3van
    Homme Profil pro
    Architecte Logiciel
    Inscrit en
    Avril 2008
    Messages
    1 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte Logiciel
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2008
    Messages : 1 430
    Points : 2 227
    Points
    2 227
    Par défaut
    A ce que je sais, PHP n'est pas typé, donc il ne reconnait pas un entier d'une chaine.

    Le plus simple dans ton cas à mon avis :

    $exposant = subst($mon_champ, -2) ;

    Ca te retourneras les deux derniers caractères, donc +qqchose ou -qqchose, vu que t'es de type 18,6, ça ne peut être un exposant compris qu'entre -9 et 9 ( si je me plante pas )

    $valeur = subst($mon_champ, 0, -3) ;

    Ca te retourneras les n chiffres, ça ne prendra pas E +/- qqchose

    for ( $i = 0 ; $i < $exposant, $i++ ) {
    if ( subst($valeur, 0, 1) == '-' ) {
    $valeur = '0'.$valeur ;
    if ( $i == $exposant-1 )
    $valeur = '0.'.$valeur ;
    } else
    $valeur = $valeur.'0' ;
    }

    Ainsi, si j'me suis pas planté, 4E-5 donnera 0.00004 et 4E5 donnera 400000.
    Mais bon, j'me suis surement planté ^^'
    Au pire ça te donne une piste.
    Et c'est peut-être pas la meilleure façon, m'enfin ça devrait le faire.


    PS : J'y ai réfléchit qu'après, mais il me semble que sur n'importe quelle base de donnée Oracle tu peux paramétrer la façon dont les chiffres sont stockés et forcer la base à stocker le chiffre avec sa valeure normale ( 0.00004 et non scientifique ( 4E-5 ).
    One minute was enough, Tyler said, a person had to work hard for it, but a minute of perfection was worth the effort. A moment was the most you could ever expect from perfection.

    -- Chuck Palahniuk, Fight Club, Chapter 3 --

  3. #3
    Membre averti
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2007
    Messages
    340
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Février 2007
    Messages : 340
    Points : 350
    Points
    350
    Par défaut
    Je pencherai plutot pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RTRIM(LTRIM(TO_CHAR(MONCHAMPNUMBER,'999999990.99999')))
    directement sur ta requete

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

Discussions similaires

  1. Problèmes de performances sur une base oracle 10g
    Par ORAMEL dans le forum Oracle
    Réponses: 3
    Dernier message: 11/09/2007, 09h11
  2. Réponses: 2
    Dernier message: 03/09/2007, 14h41
  3. Travailler sur une base Oracle
    Par prolog18 dans le forum Outils
    Réponses: 1
    Dernier message: 26/07/2007, 12h13
  4. comment on peut travailler sur une base oracle
    Par Bourak dans le forum Oracle
    Réponses: 1
    Dernier message: 18/06/2007, 18h16
  5. Connection de BO v6.1.b sur une base Oracle 9
    Par HBA_BO dans le forum Administration-Migration
    Réponses: 12
    Dernier message: 09/11/2006, 17h34

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