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

 PostgreSQL Discussion :

Type de données CHARACTER


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2008
    Messages
    171
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Juin 2008
    Messages : 171
    Par défaut Type de données CHARACTER
    Bonjour,

    Je travaille sur une 8.4.2 sous Cent-OS 5.

    J'ai créé une table avec la structure suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
              CREATE TABLE type_action (
                  id_type_action CHARACTER(3) NOT NULL,
                  libelle CHARACTER VARYING(30) NOT NULL,
                  id_type_operation CHARACTER(1) NOT NULL
              );
              ALTER TABLE geo.type_action OWNER TO postgres;

    J'ai saisi des valeurs sur 1, 2 ou 3 caractères dans le champ ID_TYPE_ACTION.

    Lorsque je fais un SELECT, je ne reçois jamais les espaces en fin sur les valeurs contenant 1 ou 2 caractères :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
              select id_type_act,length(id_type_act),'--'||id_type_act||'--' from type_act;
                        RR, 2, --RR--
                        P, 1, --P--
                        QQQ,3, --QQQ--
    Ne devrais-je pas obtenir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
                        RR , 3, --RR --
                        P  ,3, --P  --
                        QQQ,3, --QQQ--
    Merci.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    Les espaces à la fin d'une donnée de type char(n) sont non significatifs, ils ne sont donc pas pris en compte pour length(), la concaténation, etc...
    En revanche ils sont bien affichés. Exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    => select
      'a'::char(15) as col1,
      'b' as col2,
      'c'::char(15)||'d' as col3
     
          col1       | col | col3 
    -----------------+-----+------
     a               | b   | cd
    (1 row)
    On voit qu'il y a les espaces dans col1 mais pas dans col3.

Discussions similaires

  1. interbase : types de donnés : AutoIncrement et Date ???
    Par delphien dans le forum Bases de données
    Réponses: 2
    Dernier message: 12/04/2004, 17h29
  2. Type pour données de type email avec @
    Par jeff37 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 26/01/2004, 14h50
  3. Types de données interbase
    Par Clotilde dans le forum InterBase
    Réponses: 2
    Dernier message: 18/11/2003, 14h10
  4. Réponses: 2
    Dernier message: 22/09/2003, 11h23
  5. Convertir un type de donnée sous SQL Server
    Par Fleep dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 19/08/2003, 15h15

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