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

  1. #1
    Membre à l'essai
    Conversion de texte en numérique avec "TO NUMBER"
    Bonjour,

    J'ai créé une requête WEBI qui a généré automatiquement une requête SQL.
    J'ai besoin de convertir un des champs (LIGNE_CREDIT_H.COD_LC) dans un format numérique
    J'ai donc ajouté "to_number" devant le champ ( REF_FI02_LIGNE_CREDIT_H.COD_LC) après le select et après le groupe by
    Dans le SQL joint, mes seuls changements sont identifiés en jaune mais ils génèrent une erreur "Le type de données d'une colonne de la requête est non valide" (IES 10811).

    Pourriez-vous m'aider svp
    Merci d'avance pour votre aide

    Bonne journée

    Chrystel

  2. #2
    Rédacteur

    TO_NUMBER est une fonction spécifique à oracle. La norme c'est CAST....
    À lire : https://sqlpro.developpez.com/cours/...onctions/#LI-C

    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  3. #3
    Membre confirmé
    Bonjour,

    N'y-a-t-il que des valeurs numériques dans cette colonne? Si oui, c'est qu'il faur préciser le séparateur décimal, par exemple:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    to_number(nom_colonne, '9999999.99')

  4. #4
    Membre à l'essai
    Bonjour,

    Merci beaucoup pour vos retours rapides, pour vos proposition et la page de formation SQL très intéressante.

    La fonction to number devrait fonctionner car elle est utilisée dans le code généré automatiquement.

    Quand je rajoute "to_number(REF_FI02_LIGNE_CREDIT_H.COD_LC,'9999999.99')," après le "select" et le "group by",
    j'ai un nouveau message d'erreur :
    « L'erreur de base de données suivante est survenue : ORA-00979: n'est pas une expression GROUP BY.
    Pour en savoir plus, consultez l'article 2054721 de la base de connaissances SAP sur le SAP Support Portal. (IES 10901) »
    Ci-joint le SQL revu (avec 2 lignes concernées en jaune).
    Je ne comprends pas car même si je ne fais pas de bagage sql, je ne change quasiment rien au code...?
    Merci pour votre aide

    Chrystel

  5. #5
    Membre confirmé
    As-tu la possibilité d'exécuter la requête directement sur la base de données?

  6. #6
    Membre à l'essai
    Bonjour,

    Je ne suis pas sure de comprendre la question...
    Je n'ai pas d'outil SQL. Je vois juste la requête dans le "SQL personnalisé" de ma requete WEBI.

    Chrystel

  7. #7
    Membre du Club
    Bonjour,

    Pourquoi ne pas transformer l'objet dans webi ? Crée une variable numérique (de type indicateur ou dimension en fonction du besoin) avec la fonction EnNombre()

    cela te permettra de vérifier que les données sont vraiment numériques, supprimer les espaces, changer le . décimal si nécessaire ...

    et si les données ne sont pas toute numériques tu pourras gérer les erreurs plus facilement.

    bonne continuation
    marie

  8. #8
    Membre à l'essai
    Bonjour,

    Merci de votre retour.
    Je suis malheureusement obligée de faire le changement dans le sql pour pouvoir fusionner 2 univers.

    Chrystel