Vous n'êtes pas identifié(e).

#1 11/06/2012 14:43:00

brse
Membre

Espaces dans un champ character

Bonjour,


Sur une de mes tables j'ai un champs de type character(16) qui se complète avec des espaces (fonctionnement normal).

Par contre, quand je fais un select, le champ retourné ne contient aucun espace superflus.

Ma question : Comment faire pour récupérer le champ en entier (la chaine + les espaces superflus)?



Merci




Exemple : (Postgres 9.1)       
create table PARAM_RUB
(
    OID         VARCHAR (20)    not null,
    CDRUB       CHAR(16)        not null,
);                                                                                                             
insert into param_rub (oid, cdrub) values ('15203','FILLER          ');   


Quand je recherche à récupéré le champ cdrub entouré par un caractère 'a' (pour voir ce qu'il me retourne), j'ai "aFILLERa" au lieu de "aFILLER          a".
select 'a' ||cdrub || 'a' from param_rub where oid = '15203';

Hors ligne

#2 11/06/2012 15:58:48

edlm
Membre

Re : Espaces dans un champ character

Cela semble conforme à la documentation et notamment:


Les espaces finales sont ignorées lors de la comparaison de deux valeurs de type character et sont supprimées lors de la conversion d'une valeur character en un des autres types chaîne


Pour résoudre le problème essayez de faire un cast vers un VARCHAR:


select 'a' || cdrub::VARCHAR || 'a' from param_rub where oid = '15203';


Éric

Hors ligne

Pied de page des forums