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

Oracle Discussion :

formattage chaine de caracteres


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut formattage chaine de caracteres
    Bonjour a tous,

    Je fais des extractions de donnees sur une base oracle...
    je veux extraire un champs chaine de caractere qui à l'origine est un varchar(100) mais les chaines de caracteres dans ce champs en general n'atteignent pas 100...mais quand je fais mon extraction il extrait les 100 de telle sorte qu'il y a assez de blanc...je voudrais extraire la chaine de caracteres selon sa taille, si elle est de 10 meme si elle a ete déclare varchar(100), je veux extraire exactement les 10 et non 100 avec avec du blanc pour remplir les 100....
    Jespere avoir bien expliqué ma situation, merci par avance.

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Extraction avec quel outil ?

  3. #3
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    1) passe ton champ en varchar2
    si tu ne peux pas faire une modif de structure

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    select RTRIM(mon_champ) from matable

  4. #4
    Membre averti
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut
    Merci a tous,

    je fais les extractions avec sqlplus sous dos de windows...
    malheureusement je ne peux pas changer la structure du champs en varchar2 comme indiqué...j'ai utilisé rtrim mais c toujours la meme chose je ne sais pas trop pourquoi...
    Merci

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Si tu nous indiquais ce que tu fais et mieux encore un exemple de ce que tu veux obtenir, nos réponses seraient sans aucun doute plus pertinentes que si on doit deviner...

  6. #6
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Citation Envoyé par esthr Voir le message
    Bonjour a tous,

    Je fais des extractions de donnees sur une base oracle...
    je veux extraire un champs chaine de caractere qui à l'origine est un varchar(100) mais les chaines de caracteres dans ce champs en general n'atteignent pas 100...mais quand je fais mon extraction il extrait les 100 de telle sorte qu'il y a assez de blanc...je voudrais extraire la chaine de caracteres selon sa taille, si elle est de 10 meme si elle a ete déclare varchar(100), je veux extraire exactement les 10 et non 100 avec avec du blanc pour remplir les 100....
    Jespere avoir bien expliqué ma situation, merci par avance.
    Et bien, c'est normal !
    Sql*plus reserve le nb de caractères maximum pour afficher la colonne (cad 100 caractères) !

  7. #7
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    voir discussion similaire
    Oui , d'accord, c'est sur des formats de nombre, mais y'a matière...

  8. #8
    Membre averti
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut
    Merci a tous,

    jai par exemple un champs libelle dune table avec
    libelle = "forum develloppement oracle"
    moi je veux extraire effectivement "forum develloppement oracle" mais l'extraction me donne
    "forum develloppement oracle bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"

    b pour dire blanc; c' normal car c varchar2(100) mais je cherche un myen d'extraire exactement la chaine de caracteres sans blanc apres...
    j'espere avoir été plus claire...merci par avance.

  9. #9
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Envoie nous le texte de la requête que tu fais !

  10. #10
    Membre averti
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut
    Merci a tous,
    ma requete ressemble à celle ci-dessous que j'execute avec sqlplus sous dos
    le champs dont je parlais est le a.libelle

    sqlplus user/password@chainedeconnexion @requete

    set head off;
    set pagesize 0;
    set linesize 2000;
    set numwidth 50;
    set feedback off;
    set colsep '|';
    spool mvtncghr
    select b.nc,c.klib,a.tcom,b.nommo,b.devuoi,a.datyou,a.dddatgal,a.mnt,a.libelle,a.egb,a.lpi
    from ligt a,risp b,libt c
    where a.tcom = b.tcom
    and b.nc = c.nc
    and b.nc in ('741331100','3388522500','4125332600','417379100')
    and a.datyou between to_date('01'||'01'||to_char((select roit from detat),'yyyy'),'dd/mm/yyyy') and (select roit from detat);
    spool off;
    exit;

  11. #11
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Merci de penser à utiliser les balises codes

    Tu peux faire un substr sur ta colonne avec le nombre de caractères max que tu veux afficher.

  12. #12
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    Quelques astuces
    - Pour prendre le 1 jour de l'année d'une date faire TRUNC(date,'YYYY')
    - mettre detat dans le from
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    FROM ligt a,risp b,libt c,detat r
    WHERE a.compte = b.compte
     AND b.nc = c.nc
     AND b.nc IN ('741331100', '3388522500', '4125332600', '417379100')
     AND a.datyou BETWEEN 
    TRUNC(r.roit,'YYYY')
    /*TO_DATE ('01' || '01' || TO_CHAR (r.roit),
                                                            'yyyy'),
                                   'dd/mm/yyyy'
                                  )*/
                      AND r.roit

  13. #13
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par esthr Voir le message
    set colsep '|'
    select b.nc,c.klib,a.tcom,b.nommo,b.devuoi,a.datyou,a.dddatgal,a.mnt,a.libelle,a.egb,a.lpi
    from ligt a,risp b,libt c
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    select
      b.nc||'|'||
      c.klib||'|'||
      a.tcom||'|'||
      b.nommo||'|'||
      b.devuoi||'|'||
      a.datyou||'|'||
      a.dddatgal||'|'||
      a.mnt||'|'||
      a.libelle||'|'||
      a.egb||'|'||
      a.lpi 
    from ligt a,risp b,libt c

  14. #14
    Membre averti
    Inscrit en
    Février 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 47
    Par défaut
    Merci a tous

    Merci aussi pour cette astuce avec la fonction TRUNC, je viens de modifier ma requete et toutes mes requetes où j'utilisais des dates dans le meme contexte...merci encore...Merci aussi pour cette astuce avec la concatenation avec des pipes ça marche...on apprend toujours...

Discussions similaires

  1. Réponses: 9
    Dernier message: 06/11/2007, 12h36
  2. Réponses: 13
    Dernier message: 13/06/2003, 14h13
  3. Pb Update avec chaine de caractere
    Par JuJu° dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/05/2003, 15h58
  4. [LG]comparaison de chaines de caracteres
    Par thesam dans le forum Langage
    Réponses: 6
    Dernier message: 20/05/2003, 22h41
  5. Probleme sur les chaines de caractere
    Par scorpiwolf dans le forum C
    Réponses: 8
    Dernier message: 06/05/2002, 19h01

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