<html>
<body>
Le 12/05/2006 08:06, SOUCHARD Jean-Michel DSIC BI écrivait :<br><br>
<blockquote type=cite class=cite cite="">
<font face="Arial, Helvetica" size=2>Bonjour et félicitations pour
l'initiative! <br>
</font><br>
<font face="Arial, Helvetica" size=2 color="#0000FF"><i>"varchar(n)
(alias de character varying) et char(n), n'ont que peu d'intérêt par
rapport à text qui permet de stocker des chaînes de caractères de
n'importe quelle longueur, sans pénalité, ni d'espace, ni de performance.
Alors pourquoi s'ennuyer ? Seul autre type texte vraiment intéressant,
char qui n'occupe qu'un byte."<br>
</i></font><br>
<font face="Arial, Helvetica" size=2>Tout simplement parce que TEXT n'est
pas un type SQL standard et que dans cette mesure, il vaut mieux éviter
de l'utiliser, autant que faire se peut ! Il s'agit d'une implémentation
propre à PostgreSql, que l'on retrouve malgré tout dans d'autres types de
bases de données. VARCHAR fait partie de la norme SQL
!</font></blockquote><br>
Donc TEXT est à éviter par :<br>
- les puristes <br>
- celles et ceux pour qui abandonner PG est une possibilité (et encore
pour une BD où TEXT ou son équivalent n'existe pas).<br><br>
Y-en-a beaucoup ?<br><br>
En ce qui me concerne :<br>
- je suis un pragmatique et recherche l'économie avant tout.<br>
- quant à abandonner PG cela voudrait dire abandonner mon projet (ou
éventuellement passer à une BD objet - et au revoir SQL).<br><br>
Bonne journée,<br><br>
FL<br><br>
<br>
<blockquote type=cite class=cite cite="">
<font face="Arial, Helvetica" size=2>SQL permet de codifier les chaînes
de caractères dans des formats où chaque caractères s'exprime sur 2
octets (ASCII, EBCDIC) ou sur 4 octets (Unicode). La longueur que tu
précises, c'est la longueur utile : le nombre de caractères et non le
nombre d'octets ! <br>
</font><br>
<font face="Arial, Helvetica" size=2>Mais effectivement si tu as un
doute, le plus simple consiste à faire un petit test simple
d'insertion/restitution (INSERT/SELECT)<br>
</font><br>
<font face="Arial, Helvetica" size=2>Cordialement</font> <br>
<font face="Arial, Helvetica" size=2>JM Souchard</font> <br><br>
<font face="Arial, Helvetica" size=2>-----Message d'origine-----</font>
<br>
<font face="Arial, Helvetica" size=2>De :
pgsql-fr-generale-owner(at)postgresql(dot)org
[</font><a href="mailto:pgsql-fr-generale-owner(at)postgresql(dot)org">
<font face="Arial, Helvetica" size=2 color="#0000FF"><u>
mailto:pgsql-fr-generale-owner(at)postgresql(dot)org</a></u></font>
<font face="Arial, Helvetica" size=2>] De la part de Francis
Leboutte<br>
</font><br>
<font face="Arial, Helvetica" size=2>Envoyé : jeudi 11 mai 2006
19:19</font> <br>
<font face="Arial, Helvetica" size=2>À : liste PostgreSql FR</font> <br>
<font face="Arial, Helvetica" size=2>Objet : Re: [pgsql-fr-generale]
varchar et encodage</font> <br><br>
<font face="Arial, Helvetica" size=2>Le 11/05/2006 16:28, claude C.
écrivait :</font> <br>
<font face="Arial, Helvetica" size=2>>Bonjour,</font> <br>
<font face="Arial, Helvetica" size=2>></font> <br>
<font face="Arial, Helvetica" size=2>>J'ai une base encodée en UTF8.
J'ai défini une colonne comme varchar (30).</font> <br>
<font face="Arial, Helvetica" size=2>>D'après la documentation, le
"30" indique le nombre de caractères.</font> <br>
<font face="Arial, Helvetica" size=2>>Ma question :</font> <br>
<font face="Arial, Helvetica" size=2>>Si j'entre une donnée comportant
de nombreux caractères particuliers </font><br>
<font face="Arial, Helvetica" size=2>>encodés sur plusieurs octets,
est-ce que je peux toujours entrer 30 </font><br>
<font face="Arial, Helvetica" size=2>>caractères ?</font> <br>
<font face="Arial, Helvetica" size=2>>Reformulation : est-ce que 30
indiquent bien le nombre de caractères et </font><br>
<font face="Arial, Helvetica" size=2>>non le nombre d'octets ?</font>
<br><br>
<font face="Arial, Helvetica" size=2>Comme dit dans un courriel antérieur
:</font> <br><br>
<font face="Arial, Helvetica" size=2>varchar(n) (alias de character
varying) et char(n), n'ont que peu d'intérêt par rapport à text qui
permet de stocker des chaînes de caractères de n'importe quelle longueur,
sans pénalité, ni d'espace, ni de performance. Alors pourquoi s'ennuyer ?
Seul autre type texte vraiment intéressant, char qui n'occupe qu'un
byte.<br>
</font><br>
<font face="Arial, Helvetica" size=2>--</font> <br>
<font face="Arial, Helvetica" size=2>Francis Leboutte</font> <br>
<font face="Arial, Helvetica" size=2>Algorithme, Rue de la Charrette 141,
4130 Tilff (Esneux), Belgique Service en informatique</font> <br>
<font face="Arial, Helvetica" size=2>
f(dot)leboutte(at)algo(dot)be</font> <br>
<font face="Arial, Helvetica" size=2>
</font><a href="www.algo.htm">
<font face="Arial, Helvetica" size=2 color="#0000FF"><u>www.algo.be</a>
</u></font> <br>
<font face="Arial, Helvetica" size=2>
+32-(0)4.388.3919</font> <br><br>
<br>
<font face="Arial, Helvetica" size=2>---------------------------(end of
broadcast)---------------------------</font> <br>
<font face="Arial, Helvetica" size=2>TIP 3: Have you checked our
extensive FAQ?</font> <br><br>
<font face="Arial, Helvetica" size=2>
</font><a href="http://www.postgresql.org/docs/faq">
<font face="Arial, Helvetica" size=2 color="#0000FF"><u>
http://www.postgresql.org/docs/faq</a></u></font> </blockquote></body>
</html>