From: | Sebastián Villalba <sebastian(at)fcm(dot)unc(dot)edu(dot)ar> |
---|---|
To: | "Lista Ayuda Pgsql" <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Campos text y caracteres de escape |
Date: | 2007-08-29 01:23:56 |
Message-ID: | 20070829000045.M54850@fcm.unc.edu.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Hola a todos. ¿Hay forma de que Postgres no me cuente los caracteres de escape
al momento de hacer una inserción?.
Ej.:
Un campo "resumen" de tipo text de una tabla "A", puede estar limitado por un
valor "limite" de tipo int, por ejemplo "limite=6" de una tabla "B".
Si quiero insertar el string "Hola" me lo debería permitir, pero al momento de
insertarlo, tengo que hacer:
INSERT INTO "A"(resumen) VALUES ('\"Hola\"');
Al poner los caracteres de escape, una cadena de 6 caracteres se transforma en
una de 8.
Yo tengo una función (en plpgsql) que hace algo como (en pseudocódigo):
SELECT limite INTO cantidad FROM "B";
IF (cantidad >= (SELECT char_length($1)) THEN
hago el insert
ELSE
RAISE NOTICE...
Donde $1 es el texto a insertar. En el ejemplo nunca hace la inserción aunque
la cantidad de caracteres esté dentro del límite.
También, si "resumen" tuviera mas de un renglón, me inserta caracteres (no
imprimibles '\r') de fin de línea, pero también éstos caracteres son contados
por la función "char_length". Algún consejo?. Un cordial saludo a todos...
p/d: Utilizo Pg 8.2.4 en Debian.
-
-------------------------------------------
Sebastián Villalba
sebastian(at)fcm(dot)unc(dot)edu(dot)ar
-------------------------------------------
From | Date | Subject | |
---|---|---|---|
Next Message | Agustin Casiva | 2007-08-29 04:32:49 | OT - Lenguajes y otras yerbas (Progesql - vfp) |
Previous Message | Gabriel Hermes Colina Zambra | 2007-08-29 00:34:48 | Re: Progesql - vfp |