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

Langage SQL Discussion :

Select en modifiant le type de format remonté


Sujet :

Langage SQL

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut Select en modifiant le type de format remonté
    Bonjour,

    je suis un peu neophyte en SQL .... j'ai cherché sur le forum sans trouver la reponse a ma question.

    Nous utilisons un outil pour extraire des données d'une DB via une requete SQL
    Or cet outil a la facheuse manie de transformer les chiffres en format scientifique et en faisant un arrondi a la decimale pret .... resultat les ID Key de la table se retrouve tronquer et ne sont plus uniques !
    seules solution transformer la donnée extraite en text ... apres plusieurs manoeuvre j'y arrive mais je me dit qu'il serait surement plus simple si le resultat de la requete SQL pouvait me sortir les ID en text directement


    ma requete est assez simple du style
    SELECT *
    FROM TABLE1
    where DATE > SYSDATE -7

    ca me retourne quand meme un peu plus de 2 millions de lignes ;-)

    la table comporte une vingtaine de champs
    mais j'aimerai que le champs ID soit retourné en format "string"
    comment faire?

    je me dit que soit il y a une commande SQL pour forcer une valeur a remonter dans un format precis. soit il y a une facon d'ajouter par defaut du texte a l'ID ... genre "ID" devant le chiffre .... ce qui forcerai notre outil a reconnaitre cela comme du texte...

    bref si qq'un connait une facon de le faire je lui serait vraiement reconnaissant ....

    d'avancez merci

    Yannick

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 286
    Points : 12 991
    Points
    12 991
    Par défaut
    Bonjour,
    En faisant une petite recherche avec les mots "sql numerique vers chaine", on trouve quelques pistes.
    Il faut juste vérifier celles qui fonctionnent avec ton SGBD.

    Tatayo.

    P.S. attention, en sql on parle de tables, de lignes et de colonnes. Tu vas de faire remonter les bretelles avec tes champs

  3. #3
    Membre expérimenté
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Septembre 2016
    Messages
    853
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2016
    Messages : 853
    Points : 1 631
    Points
    1 631
    Par défaut
    Bonjour,

    Le plus simple reste de garder la requête et de changer d'outil !

    Essayer de patcher le comportement douteux d'un outil, dans sa version x, par un ajout de code fera que lorsqu'on aura à relire le code en version x+10 on trouvera un code illisible dont l'utilité est plus que douteuse.

    Au pire, comme utilitaire, il existe expdp https://oracle-base.com/articles/10g...-data-pump-10g

  4. #4
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    merci pour vos reponse je vais regarder avec ces mots cles "sql numerique vers chaine"

    PS : si je pouvais changer d'outil je n'aurais pas poser la question ;-) .... parfois dans une societé on est obligé de faire avec les outils qu'on a

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Re bonjour,

    j'ai beau cherché je ne trouve pas
    je suis tombé sur des fonctions type : CAST(ma colonne AS DECIMAL(16,2)) mais je n'ai pas trouvé l'inverse DOUBLE ==> TEXT

    je suis tombé sur une grosse matrice et j'ai l'impression qu'en fait ce n'est pas possible de passer de numeric a text
    (https://docs.microsoft.com/fr-fr/sql...l-server-ver15)
    est ce que vous confirmez ?

  6. #6
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    N'utilisez pas TEXT qui est deprécié mais plutôt [VAR]CHAR(n)par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CAST(ma colonne AS CHAR(18))

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Comme les fonctions de formatage dépendent du SGBD, de quel SGBD récupérez-vous les données ?
    Cordialement
    Soazig

  8. #8
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    merci aieuuuuuu , je vais essayer

    Soazig, c'est quoi SGBD ? (BD =Base de donnée j'immagine ... )
    On part d'une database en oracle si c'est ca la question (Oracle 10 et Oracle 12 pour une autre base)
    l'extract se fait via un outil que personne ne connait je crois "KLA-ACE-XP"

  9. #9
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 385
    Points : 39 883
    Points
    39 883
    Billets dans le blog
    9
    Par défaut
    SGBD = Système de Gestion de Bases de Données
    SGBD-R =Système de Gestion de Bases de Données Relationnelles

    Exemples de SGBD-R : Oracle, SQL-Server, DB2, Sybase
    Exemples de versions : Oracle 9i, 10g, SQL-Server 2008, 2014, DB2V8, V11, V12...

  10. #10
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par escartefigue Voir le message
    SGBD = Système de Gestion de Bases de Données
    SGBD-R =Système de Gestion de Bases de Données Relationnelles

    Exemples de SGBD-R : Oracle, SQL-Server, DB2, Sybase
    Exemples de versions : Oracle 9i, 10g, SQL-Server 2008, 2014, DB2V8, V11, V12...
    du coup j'avais repondu : Oracle 10 et 12

  11. #11
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Avec oracle tu peux utiliser to_char, il me semble.
    https://docs.oracle.com/cd/B19306_01...004.htm#i34510
    Je n'ai pas du toucher à Oracle depuis 5 ans.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Select to_char(Id,'0') as Id, col2,... ColN from MaTable where ...
    Cordialement
    Soazig

Discussions similaires

  1. Réponses: 8
    Dernier message: 11/12/2014, 01h19
  2. modifier le type d'un champs
    Par xopos dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 16/12/2008, 16h09
  3. Problème de champs Paradox type : mémo formaté
    Par mjp dans le forum Bases de données
    Réponses: 6
    Dernier message: 05/04/2005, 22h13
  4. [modifier un type]
    Par viny dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 11/03/2005, 15h34
  5. Modifier un type défini par l'utilisateur
    Par soazig dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/08/2004, 13h47

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